第 1 章 メインウィンドウ

◀ 1.19 クローズボタンの無効化とウィンドウのクローズ   【目  次】  1.21 ウィンドウアイコン ▶

999999

 更新日:


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

1.20 表示状態の制御(wm_state、state、wm_withdraw、withdrawn、wm_iconify、iconify、wm_deiconify、deiconify)

 ウィンドウの表示状態には通常の表示状態(通常状態)の他に、ウィンドウが見えなくなる状態(非表示状態とアイコン化状態)およびスクリーンの全画面に表示する状態(最大化状態)があります。これらの状態はウィンドウのタイトルバーにあるボタンをマウスで左クリックすることで制御できますが、アプリケーションから設定することができます。

 ウィンドウの表示状態を設定するには、Wm クラスの「wm_state」または「state」メソッドに引数を指定して用います。下記の書式を用います。詳細は Wm クラスメソッドを参照して下さい。

object.wm_state(newstate=None)
object.state(newstate=None)

 引数 newstate には設定するウィンドウの表示状態を文字列で指定します。「withdrawn」は、タスクバーにアイコンを表示せずウィンドウを非表示にします。「iconic」は、ウィンドウのタイトルバーの最小化ボタンによる動作と同じです。「normal」は、ウィンドウを設定されているサイズで表示します。「zoomed」は、ウィンドウのタイトルバーの最大化ボタンによる動作と同じです。引数に値を設定しない場合、現在のウィンドウの表示状態を上記の文字列で返します。

 上の「wm_state」メソッドの引数で指定したのと同じ動作をするメソッドとして、Wm クラスの「wm_withdraw」または「withdrawn」、「wm_iconify」または「iconify」、「wm_deiconify」または「deiconify」メソッドがあります。それぞれ、下記の書式を用います。詳細は Wm クラスメソッドを参照して下さい。

object.wm_withdraw()
object.withdraw()

「object.wm_state('withdrawn')」と同じ動作をします。


object.wm_iconify()
object.iconify()

「object.wm_state('iconic')」と同じ動作をします。


object.wm_deiconify()
object.deiconify()

「object.wm_state('normal')」と同じ動作をします。

 次のプログラムは、「bind」メソッドで、クライアント領域をマウスの右クリックすることでウィンドウをアイコン化しています。タスクバーのアイコンをマウスの左クリックすることで再表示されます。「bind」メソッドについては Misc クラスメソッドを参照して下さい。

1
import tkinter as tk
2
root = tk.Tk()
3
root.config(width=300, height=200)
4
root.bind(''<Button-3>', lambda event: root.wm_state('iconic'))
5
root.mainloop()