如何检查 Tkinter 中的小组件是否具有焦点?
假设我们需要检查特定小组件是否具有焦点集。检查小组件焦点的唯一方法是使用实用方法 focus_get()。它会返回包含小组件信息的变量,这些信息在程序执行期间会作为小组件的焦点。在程序执行期间,我们将使用 focus_get() 方法找到活动小组件。
示例
在此示例中,我们创建了一个 Entry 小组件,当按下 <Enter> 键时,它将获取焦点。focus_get() 方法将会返回当前活动小组件的信息。
#Import the Tkinter library from tkinter import * #Create an instance of Tkinter frame win= Tk() #Define the geometry win.geometry("750x250") #Define Event handlers for different Operations def event_show(event): label.config(text="Hello World") e.focus_set() print("focus is:" ,e.focus_get) #Create a Label label= Label(win, text="Press Enter",font=('Helvetica 15 underline')) label.pack() #Create an entry widget e= Entry(win, width= 25) e.pack(pady=20) #Bind the function win.bind('<Return>',lambda event:event_show(event)) win.mainloop()
输出
运行上述代码将会显示一个包含按钮的窗口。当按下 <Enter> 键时,它会打印包含小组件信息(当前窗口窗格的焦点)的输出。
现在,当按下 <Enter> 时,它将在 Shell 中显示输出,如:
focus is : <bound method Misc.focus_get of <tkinter.Entry object .!entry >>
广告