Python Code Notes

Information by python engineer

【tkinter】 画面サイズ・位置の設定方法 - 基礎 【Python】

tkinter画面の位置・サイズの取得・調整が可能なgeometryメソッドの基本的な使い方を整理しました。 また、geometryメソッドと直接関連しませんが、併用することの多いモニターの画面サイズの取得方法についても記載しました。これらを応用したより実践的な使い方は、以下の記事を参照ください。

【スポンサーリンク】


メイン画面のサイズ・位置を設定

トップレベルウィジェット(Tkウィジェット)のgeometryメソッドに値を入力することで、メイン画面のサイズと位置を調整することができます。例えば、300x150のサイズで座標(100, 100)にtkinter画面を出したい場合は、以下の通りgeometryメソッドに文字列で"300x150+100+300"を渡してあげればOKです。

import tkinter

root = tkinter.Tk()                 #トップレベルウィジェット
root.geometry("300x150+100+300")    #画面サイズ、位置の設定
root.mainloop()

上記のコードを実行すると、下図の様に指定したサイズの画面が指定した位置に出現します。

以下の通り、画面サイズだけ、または画面位置だけを指定することも可能です。

root.geometry("300x150") #画面サイズだけを指定
root.geometry("+100+300") #画面位置だけを指定

[↑ 目次へ]


【スポンサーリンク】


メイン画面のサイズ・位置を取得

geometryメソッドに値を渡さないと、現在の画面サイズ・位置を取得することができる。以下の例では、クリックすると画面サイズを取得して表示するボタンを作成した。

import tkinter


#クリックすると画面サイズを取得して表示するボタン
class GeometryButton(tkinter.Button):
    def __init__(self, master):
        super().__init__(
            master,
            width=15,
            text="click!",
            command=self.get_geometry,  #クリック時に実行
        )
        self.master = master    #トップレベルウィジェット

    def get_geometry(self):
        self.config(text =  self.master.geometry()) #サイズ・位置を取得して表示


root = tkinter.Tk()
b = GeometryButton(root)
b.pack()
root.mainloop()

上記のコードを実行すると、以下の画面が現れる。

ボタンをクリックすると、画面サイズと位置が表示される。

画面のサイズや位置を変更して再度クリックすると、値が更新される。

[↑ 目次へ]


モニター画面サイズを取得

winfo_screenwidthwinfo_screenheightメソッドを使用することで、使用しているモニターの横幅と縦幅を取得することができる。以下の例では、これらのメソッドで取得したモニターのサイズをラベルに表示させている。

import tkinter


#sizeを表示するラベル
class ScreensizeLabel(tkinter.Label):
    def __init__(self, size, master):
        super().__init__(
            master,
            width=15,
            text=size,  #値を表示
        )


root = tkinter.Tk() #トップレベルウィジェット

l_width = ScreensizeLabel(
    root.winfo_screenwidth(),   #モニターの横幅を渡す
    root,
    )
l_width.pack()

l_height = ScreensizeLabel(
    root.winfo_screenheight(),  #モニターの縦幅を渡す
    root,
    )
l_height.pack()

root.mainloop()

実行すると、以下の通り画面のサイズが表示される。この機能を利用し、tkinterの画面をモニター端に合わせることが可能になる。

[↑ 目次へ]


【スポンサーリンク】