[英]Tkinter Text widget unusable after displaying a tkinter.simpledialog prompt
在 Tkinter 中,我发现了一个小问题。 我无法使用用户可以在使用 Tkinter simpledialog 提示后输入字母的条目/文本/滚动文本/任何小部件。 在使用提示之前,条目小部件工作正常,但在提示之后,我无法在小部件中输入内容。 就好像小部件被禁用一样。 不会抛出任何异常。 但是,一旦我单击另一个窗口并再次单击我的 Tkinter 窗口,我就可以再次访问该小部件。
我尝试在入口小部件上使用focus_get
方法。 它不起作用。 我也试过做entry.config(state='normal')
。 那行不通。 我想不出还有什么可以尝试的。 搜索网络不起作用; 没有相关的内容出现。
下面是一些示例代码:
import tkinter as tk
import tkinter.simpledialog as dialog
def get_string():
string = dialog.askstring("Title", "Prompt")
print(string)
root = tk.Tk()
entry = tk.Entry(root)
button = tk.Button(root, text="Get String", command=get_string)
entry.pack()
button.pack()
root.mainloop()
要显示问题,需要点击按钮,然后尝试使用入口小部件; 它对我不起作用。
我在 macOS 上使用 Python 3.9.6。
编辑:经过一些人的评论,这个问题可能是 macOS Big Sur 特有的; 这个问题在 Windows、OSX 或 Linux 上不存在。
所以,我暂时搁置了这个项目,现在我已经更新到 macOS Monterey 和 Python 3.10。 通过这些更新,我现在发现问题消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.