简而言之,我一直在为学校做一个互动的GUI(tkinter)文字游戏计划。起初,一切都进展顺利,但是在完成代码之后,当我运行它时,它已经开始以意想不到的方式运行。一些对话框(特别是
if tkinter.messagebox.askyesno():
thingy)只是快速回答“不”的问题。选项,而不是等待用户输入。有时,窗户完全关闭并导致整个程序退出。然而,尽管这些错误都是相同的(即tkinter窗口关闭/自己回答/在它们应该之前停止程序),但它们通常每次都发生在不同的地方。我不确定这是否与tkinter在其他代码中嵌套,打开,重新打开和关闭多次这一事实有关,这使得它运行得很乱,但我只破坏了tkinter窗口据我所知,在正确的地方。
我的部分代码涉及到一个循环 - 我不确定这是否会干扰mainloop(),但我无法找到另一种方式允许用户重复游戏很多时候他们想要的。
我知道这个问题很模糊,但我主要是在寻找提示 - 如果我将它分成不同的部分并稍微整理一下会更容易诊断,找到了while循环的替代方法等等。
谢谢!
答案 0 :(得分:1)
TKinter对话框应该完整填写并存储结果,然后再转到下一段代码。
确保提供对话框的所有参数(您的示例不包含参数)。
result = tkinter.messagebox.askyesno('Confirm', 'Do you want to do this')
if result == true: