1.20 表示状態の制御(wm_state、state、wm_withdraw、withdrawn、wm_iconify、iconify、wm_deiconify、deiconify)
ウィンドウの表示状態には通常の表示状態(通常状態)の他に、ウィンドウが見えなくなる状態(非表示状態とアイコン化状態)およびスクリーンの全画面に表示する状態(最大化状態)があります。これらの状態はウィンドウのタイトルバーにあるボタンをマウスで左クリックすることで制御できますが、アプリケーションから設定することができます。
ウィンドウの表示状態を設定するには、Wm クラスの「wm_state」または「state」メソッドに引数を指定して用います。下記の書式を用います。詳細は Wm クラスメソッドを参照して下さい。
引数 newstate には設定するウィンドウの表示状態を文字列で指定します。「withdrawn」は、タスクバーにアイコンを表示せずウィンドウを非表示にします。「iconic」は、ウィンドウのタイトルバーの最小化ボタンによる動作と同じです。「normal」は、ウィンドウを設定されているサイズで表示します。「zoomed」は、ウィンドウのタイトルバーの最大化ボタンによる動作と同じです。引数に値を設定しない場合、現在のウィンドウの表示状態を上記の文字列で返します。
上の「wm_state」メソッドの引数で指定したのと同じ動作をするメソッドとして、Wm クラスの「wm_withdraw」または「withdrawn」、「wm_iconify」または「iconify」、「wm_deiconify」または「deiconify」メソッドがあります。それぞれ、下記の書式を用います。詳細は Wm クラスメソッドを参照して下さい。
「object.wm_state('withdrawn')」と同じ動作をします。
「object.wm_state('iconic')」と同じ動作をします。
「object.wm_state('normal')」と同じ動作をします。
次のプログラムは、「bind」メソッドで、クライアント領域をマウスの右クリックすることでウィンドウをアイコン化しています。タスクバーのアイコンをマウスの左クリックすることで再表示されます。「bind」メソッドについては Misc クラスメソッドを参照して下さい。
import tkinter as tk | |
root = tk.Tk() | |
root.config(width=300, height=200) | |
root.bind(''<Button-3>', lambda event: root.wm_state('iconic')) | |
root.mainloop() |