繁体   English   中英

显示 tkinter.simpledialog 提示后 Tkinter 文本小部件无法使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM