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_screenwidth
とwinfo_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の画面をモニター端に合わせることが可能になる。
【スポンサーリンク】