如何在初始化新窗口时使tkinter专注于输入框?

问题描述 投票:0回答:2

我正在尝试使用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()在这里不起作用,将不胜感激。

python tkinter tkinter-entry setfocus
2个回答
0
投票

我在某个互联网深处找到了this gem后(又称Google搜索的第五个链接),就可以解决我的问题。简单的解决方案是使用focus_force()而不是focus_set()。在所有其余代码相同的情况下,此简单更改即可修复所有问题。


0
投票

您可以尝试使用focus()函数而不是focus_set()

entr = tk.Entry(new)
entr.grid()
entr.focus()
© www.soinside.com 2019 - 2024. All rights reserved.