このホームページは Amazon Kindle 本の作成中の草稿です。日々、原稿を見直しているので、内容が変わることに留意して読んで下さい。本が出版され次第、このホームページは削除されます。
2.29 ウィンドウハンドルの取得(wm_frame)
サブウィンドウはメインウィンドウと同様に OS によってタイトルバーやメニューが装飾されて作成されます。Windows の関数でウィンドウを操作する識別子(ウィンドウハンドル)はメインウィンドウと同様に Wm クラスの「wm_frame」メソッドで取得します。1.29 ウィンドウハンドルの取得を参照して下さい。
次のプログラムは、サブウィンドウのウィンドウハンドルを「wm_frame」メソッドで取得しています。取得値は 16 進文字列なので Python の関数で 10 進整数値に変換しています。それぞれを「print」出力しています。
import tkinter as tk | |
root = tk.Tk() | |
root.geometry('300x200+100+100') | |
sub = tk.Toplevel(root, width=300, height=200, bg='red') | |
sub.geometry('+140+120') | |
root.update() | |
root.wm_deiconify() | |
sub.wm_deiconify() | |
sf = sub.wm_frame() | |
print(sf) | |
hwnd = int(sf, 16) | |
print(hwnd) | |
root.mainloop() |
プログラムを実行すると、ウィンドウが表示され、ウィンドウハンドルが 16 進文字列、10 進整数値としてprint」出力されます。
0x3a06ac
3802796
3802796