我正在尝试使用tkinter
创建一个新窗口,并在其输入框上设置焦点。我正在使用以下代码,据我所知,这些代码应该可以工作:
import tkinter as tk
m = tk.Tk(className="My window")
def clickclack():
new = tk.Tk(className="New")
entr = tk.Entry(new)
entr.grid()
entr.focus_set()
butt = tk.Button(m, text="My button", width=25, command=clickclack)
butt.grid()
m.mainloop()
然而,当我运行它并点击按钮时,虽然会弹出一个带有输入框的新窗口,但焦点并不在它上面。我不知道focus_set()
为什么不在这里工作,如果有任何帮助,我们将不胜感激
您可以尝试使用focus()函数,而不是focus\u set()
不建议同时使用多个
Tk
实例。另一个窗口应使用Toplevel
实例。(可能会导致StringVar()
(等等)无法正常工作)由于
Toplevel
没有属性className
,如果要设置新窗口的标题名,需要使用Toplevel().title("xxxxx")
另外,您可以先使
Toplevel
聚焦,然后使Entry
小部件聚焦尝试:
在互联网的某个角落(又称谷歌搜索的第五个链接)找到this gem后,我解决了我的问题。简单的解决方法是使用
focus_force()
而不是focus_set()
。在所有其他代码都相同的情况下,这个简单的更改修复了所有问题相关问题 更多 >
编程相关推荐