【发布时间】:2012-10-03 15:25:07
【问题描述】:
我将消息框用于一个简单的是/否问题,但不应回避该问题,因此我想让它不可避免,并且似乎我有一个问题框。
messagebox.askyesno("text", "question?")
然后我可以回到 tkinter 的根窗口,问题仍在等待响应,但如果我有
messagebox.askyesno("text", "question?")
messagebox.askyesno("text", "question?")
打开第一个消息框后,我仍然可以返回 tkinter 的根窗口,但使用另一个问题框我无法(就像我需要的那样)。这适用于我测试的每个消息框。谁能解释一下为什么会这样以及如何使第一个问题框不可避免,或者我只需要在我的实际问题框之前做一个空白messagebox。有什么我做错了,因为我认为消息框不应该关心它之前是否有一个消息框。
为了更好地说明我的观点,我开始整理一个简单且组织良好的示例,它运行良好。我弄清楚有什么不同,当我第一次开始使用messagebox时,我想测试它的能力,并没有把它放在一个函数中。在函数中它可以完美运行。
【问题讨论】:
-
tkinter.messagebox.askyesno已经根据需要生成了一个模态对话框。 -
对话框应该是模态的,因此查看更多代码以更好地理解上下文会很有用。
-
@J.F.Sebastian 我知道该对话框会生成一个模型对话框,但用户仍然可以忽略该问题并返回根窗口。例如,如果您尝试在 windows op 中保存一个文件并且您已经有一个同名的文件,您会收到无法避免的错误消息(开始发出哔哔声和其他东西)。这就是我想要的。如前所述,在第一个消息框被回答后,第二个消息框(以及第三个、第四个等等)会发生 excat 操作。
-
您能否提供一个完整的最小示例来重现该问题?
-
@user1362446 您应该提供您的解决方案作为答案,并在允许后接受它(几天后)。
标签: python tkinter messagebox