我正在尝试创建一个弹出窗口,以便有人可以在“输入”框中填写字符串。我已经看过很多例子,但这是行不通的。
我正在尝试这样做:
var_entry = simpledialog.askstring("Test", "Test")
我收到此错误消息:
_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed
谢谢!
编辑:张贴了错误的错误消息
答案 0 :(得分:1)
我知道这是一个旧线程,但是我遇到了同样的问题,到目前为止尚未找到根本原因。
但是,如果其他人需要此解决方法,那么它对我有用:
#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()
答案 1 :(得分:0)
我还可以通过使用上面的 workaround suggested by John D 解决这个问题。
我对此做了一些研究,似乎在满足以下所有条件时会引发此异常。
simpledialog.askstring
方法的线程不是主线程。simpledialog.askstring
方法的线程不同。然而,我无法想出一个处理这个问题的过程。我希望这有助于解决问题。