このホームページは Amazon Kindle 本の作成中の草稿です。日々、原稿を見直しているので、内容が変わることに留意して読んで下さい。本が出版され次第、このホームページは削除されます。
2.25 前面、背面表示(lift、tkraise、lower、focus_force)
サブウィンドウを他のウィンドウの前面や背面にに表示するのに、メインウィンドウの 1.25 前面、背面表示と同様に「lift」、「tkraise」、「lower」メソッドを用いることができます。ただ、これらのメソッドは単にウィンドウの表示を変えるだけでフォーカスは設定されないことに注意する必要があります。ウィンドウにフォーカスを設定するには Misc クラスの「focus_force」メソッドを用います。1.25 前面、背面表示および 1.27 複数のメインウィンドウを参照して下さい。
次のプログラムはサブウィンドウを「lift」メソッドで前面に表示して、「focus_force」メソッドでフォーカスを設定しています。「2.1 項 サブウィンドウの作成」で説明したように、サブウィンドウを閉じたときにメインウィンドウが他のウィンドウで隠れないように、メインウィンドウは「wm_deiconify」メソッドで表示しています。
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.lift() | |
sub.focus_force() | |
root.mainloop() |
プログラムを実行すると、サブウィンドウはフォーカスを持って最前面に表示されます。他のウィンドウをアクティブにすると、アクティブにしたウィンドウが最前面に表示されます。