2017-06-18 84 views

回答

5

您可以將函數綁定到<FocusIn>事件。綁定到根窗口時,綁定會應用到根窗口中的每個窗口小部件,因此如果您只想在窗口整體獲得焦點時執行某些操作,則需要將event.widget與根窗口進行比較。

例如:

import Tkinter as tk 

def handle_focus(event): 
    if event.widget == root: 
     print("I have gained the focus") 

root = tk.Tk() 
entry1 = tk.Entry(root) 
entry2 = tk.Entry(root) 

entry1.pack() 
entry2.pack() 

root.bind("<FocusIn>", handle_focus) 

root.mainloop() 
0

「請注意,不推薦使用WM_SAVE_YOURSELF,並且Tk應用程序無法正確實現WM_TAKE_FOCUS或_NET_WM_PING,所以WM_DELETE_WINDOW是唯一應該使用的」。 Here's a link! 如果你需要保持Tkinter的集中所有的時間:

w.wm_attributes("-topmost", 1) 

做了很好的工作。

+0

我需要做一些事情,當窗口獲得焦點。 –