如何检查 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 >>

更新于:21-Apr-2021

2K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告