为什么tkinter窗口/盒子关闭不正常并停止程序?

时间:2017-02-25 22:07:00

标签: python user-interface tkinter

简而言之,我一直在为学校做一个互动的GUI(tkinter)文字游戏计划。起初,一切都进展顺利,但是在完成代码之后,当我运行它时,它已经开始以意想不到的方式运行。一些对话框(特别是

 if tkinter.messagebox.askyesno():

thingy)只是快速回答“不”的问题。选项,而不是等待用户输入。有时,窗户完全关闭并导致整个程序退出。然而,尽管这些错误都是相同的(即tkinter窗口关闭/自己回答/在它们应该之前停止程序),但它们通常每次都发生在不同的地方。我不确定这是否与tkinter在其他代码中嵌套,打开,重新打开和关闭多次这一事实有关,这使得它运行得很乱,但我只破坏了tkinter窗口据我所知,在正确的地方。

我的部分代码涉及到一个循环 - 我不确定这是否会干扰mainloop(),但我无法找到另一种方式允许用户重复游戏很多时候他们想要的。

我知道这个问题很模糊,但我主要是在寻找提示 - 如果我将它分成不同的部分并稍微整理一下会更容易诊断,找到了while循环的替代方法等等。

谢谢!

1 个答案:

答案 0 :(得分:1)

TKinter对话框应该完整填写并存储结果,然后再转到下一段代码。

确保提供对话框的所有参数(您的示例不包含参数)。

result = tkinter.messagebox.askyesno('Confirm', 'Do you want to do this')
if result == true: