Tkinter文本小部件在显示Tkinter后不可用.simpledialog提示



在Tkinter我发现了一个小问题。我无法使用输入/文本/滚动文本/任何小部件,用户可以在使用Tkinter简单对话框提示后输入字母。在使用提示之前,条目小部件工作正常,但在提示之后,我无法在小部件中输入内容。就好像这个小部件被禁用了。不会抛出异常。但是,当我点击另一个窗口并再次点击我的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()

要显示问题,您需要单击按钮,然后尝试使用条目小部件;它不适合我。

我使用Python 3.9.6,在macOS上。

编辑:经过一些人的评论,这个问题可能是macOS Big Sur特有的;此问题在Windows、OSX或Linux上不存在。

所以,我把这个项目单独搁置了一段时间,现在我已经更新到macOS Monterey和Python 3.10。有了这些更新,我现在发现问题消失了。

最新更新