第 1 章 メインウィンドウ

◀ 1.15 ウィンドウサイズの固定   【目  次】  1.17 ウィンドウタイトル ▶

999999

 更新日:


 このホームページは Amazon Kindle 本の作成中の草稿です。日々、原稿を見直しているので、内容が変わることに留意して読んで下さい。本が出版され次第、このホームページは削除されます。

1.16 グリッドウィンドウ(wm_grid、grid)

 メインウィンドウのサイズは「width」と「height」オプションで指定するか、 Wm クラスメソッド の「wm_geometry」または「geometry」メソッドで設定することができます(1.10 スクリーン表示位置とサイズ (1)参照)。このときの設定単位はピクセルでしたが、ウィンドウサイズをグリッド単位で設定することができます。グリッドはピクセル単位で間隔が設定された格子状の単位です。

 ウィンドウをグリッド単位で設定できるようにするには、Wm クラスメソッド の「wm_grid」または「grid」メソッドを用います。このとき、同時にグリッドの間隔のピクセル数を設定します。下記の書式を用います。詳細は Wm クラスメソッドを参照して下さい。

object.wm_grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)
object.grid(baseWidth=None, baseHeight=None, widthInc=None, heightInc=None)

 引数 baseWidth と baseHeight は、基本ウィンドウの幅と高さのグリッド数です。引数 widthInc と heightInc は、グリッドの幅と高さのピクセル数です。baseWidth x widthInc の値は基本ウィンドウの「width」オプションの設定値に一致する必要があります。同様に、baseHeight x baseHeight の値は基本ウィンドウの「height」オプションの設定値に一致する必要があります。

 次のプログラムは「width」と「height」オプションでウィンドウサイズを指定した後、「wm_geometry」メソッドでウィンドウの表示位置を設定しています。「wm_grid」メソッドでウィンドウを幅と高さともに「10」グリッドとしています。グリッドの間隔は幅「30」、高さ「20」ピクセルに設定して、ウィンドウの「width」と「height」オプションの値と一致するようにします。次いで「wm_geometry」メソッドを用いてグリッド単位でウィンドウサイズを再設定します。設定後のサイズを取得して「print」出力しています。値の取得には、設定値がウィンドウに反映された後に実行する必要があります。そのため、ウインドウへの反映が処理されるまで待機する「update」メソッドを「「print」出力の前に実行しています。「update」メソッドは Misc クラスメソッドを参照して下さい。

1
import tkinter as tk
2
root = tk.Tk()
3
root.config(width=300, height=200)
4
root.wm_geometry('+500+100')
5
root.wm_grid(10,10,30,20)
6
root.wm_geometry('10x12')
7
root.update()
8
print(root.winfo_geometry())
9
root.mainloop()

「print」出力が下記のように得られます。

300x240+500+100