我正在尝试制作一个弹出窗口,有人可以在其中填写条目框中的字符串。我已经经历了很多例子,但它不起作用。
我正在尝试这样做:
var_entry = simpledialog.askstring("Test", "Test")
我收到此错误消息:
_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed
提前致谢!
编辑:发布错误的错误信息
我正在尝试制作一个弹出窗口,有人可以在其中填写条目框中的字符串。我已经经历了很多例子,但它不起作用。
我正在尝试这样做:
var_entry = simpledialog.askstring("Test", "Test")
我收到此错误消息:
_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed
提前致谢!
编辑:发布错误的错误信息
我知道这是一个旧线程,但我遇到了同样的问题,到目前为止还没有找到根本原因。
但是,如果其他人需要,此解决方法对我有用:
#Create a new temporary "parent"
newWin = Tk()
#But make it invisible
newWin.withdraw()
#Now this works without throwing an exception:
retVal = simpledialog.askstring("Enter Value","Please enter a value",parent=newWin)
#Destroy the temporary "parent"
newWin.destroy()
通过使用John D 建议的上述解决方法,我还能够解决该问题。
我对此进行了一些研究,似乎在满足以下所有条件时会引发此异常。
simpledialog.askstring
方法的线程不是主线程。simpledialog.askstring
方法的线程不同。但是,我想不出一个处理这个问题的过程。我希望这有助于解决问题。