第 1 章 メインウィンドウ

◀ 1. 9 マウスカーソル   【目  次】  1.11 スクリーン表示位置とサイズ (2) ▶

999999

 更新日:

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

1.10 スクリーン表示位置とサイズ (1)(wm_geometry、geometry、winfo_geometry、update)

 メインウィンドウを作成すると、スクリーン上での表示位置はシステムが自動的に設定します(概ねスクリーンの左上)。この表示位置は Wm クラスメソッド の「wm_geometry」または「geometry」メソッドで設定、取得することができます。

 ウィンドウのサイズは、固有オプション の「width」と「height」オプションで設定しましたが(1.4 サイズ 参照)、表示位置と同じ「wm_geometry」または「geometry」メソッドで設定、取得することができます。

 「wm_geometry」、「geometry」メソッドでウインドウのサイズと表示位置を設定、取得するには下記の書式を用います。詳細は Wm クラスメソッド を参照して下さい。

object.wm_geometry(newGeometry=None)
object.geometry(newGeometry=None)

 引数 newGeometry は、設定する値を「幅 x 高さ ± x座標 ± y座標」のフォーマットでの文字列で指定します。値はピクセル単位の整数値です。「幅 x 高さ」または「± x 座標 ± y 座標」のいずれかを省略することができます。省略すると、元の設定値が用いられます。

 このメソッドで「幅 x 高さ」を設定すると、以後、「width」と「height」オプションの設定値は無視されます。「width」と「height」オプションの設定を有効にするには、引数に空文字「''」を設定した「wm_geometry」または「geometry」メソッドを実行します。

 引数 newGeometry に値を指定いないか「None」を指定すると、メソッドは現在のサイズと表示位置を設定フォーマットの文字列で返します。

 現在のサイズと表示位置は「winfo_geometry」メソッドでも同様に取得することができます。下記の書式を用います。詳細は Misc クラスメソッドのを参照して下さい。

object.winfo_geometry()

 ウィンドウの設定値を取得ときは、イベント処理が終了してその設定値が反映された後に行います、イベント処理の終了を待つには Misc クラスの「update」メソッドを用います。下記の書式を用います。詳細は Misc クラスメソッドのを参照して下さい。

object.update()

 次のプログラムは「wm_geometry」メソッドでウィンドウの表示位置とサイズを設定しています。設定後の値を「wm_geometry」と「winfo_geometry」メソッドで取得して「print」出力しています。値の取得には、設定値がウィンドウに反映された後に実行する必要があります。そのため、ウインドウへの反映が処理されるまで待機する「update」メソッドを「「print」出力の前に実行しています。

1
import tkinter as tk
2
root = tk.Tk()
3
root.wm_geometry('300x200+500+100')
4
root.update()
5
print(root.wm_geometry())
6
print(root.winfo_geometry())
7
root.mainloop()

「print」出力が各キーワードに対して下記のように得られます。

300x200+500+100
300x200+500+100