在 Tkinter 中将焦点从一个 Text 部件切换到另一个 Text 部件


在各种应用程序中,需要让 tkinter 部件获得焦点才能使其处于活动状态。部件还可以抢夺焦点并阻止边界之外的其他事件。为了管理和给予特定部件焦点,我们通常使用 focus_set() 方法。它使部件获得焦点并使其在程序终止之前处于活动状态。

示例

在以下示例中,我们创建了两个文本部件,我们将使用 按钮 部件同时将焦点从一个文本部件更改为另一个文本部件。因此,通过定义可以通过 按钮 部件处理的两个方法可以很方便地更改焦点。

#Import tkinter library
from tkinter import *
#Create an instance of tkinter frame
win = Tk()
#Set the geometry
win.geometry("750x250")
#Define a function for changing the focus of text widgets
def changeFocus():
   text1.focus_set()
   button.config(command=change_focus, background= "gray71")
def change_focus():
   text2.focus_set()
   button.configure(command= changeFocus)
#Create a Text WIdget
text1= Text(win, width= 30, height= 5)
text1.insert(INSERT, "New Line Text")
#Activate the focus
text1.focus_set()
text1.pack()
#Create another text widget
text2= Text(win, width= 30, height=5)
text2.insert(INSERT,"Another New Line Text")
text2.pack()
#Create a Button
button= Button(win, text= "Change Focus",font=('Helvetica 10 bold'), command= change_focus)
button.pack(pady=20)
win.mainloop()

输出

运行上述代码将显示一个包含两个文本部件的窗口。最初,“text1”部件将具有活动焦点。

现在单击“更改焦点”按钮以在两个文本部件之间切换焦点。

更新于:15-4 月-2021

846 浏览量

开启你的 事业

通过完成课程获得认证

开始
广告