如何在Tkinter窗口打开时暂停Python?

0 投票
2 回答
2351 浏览
提问于 2025-04-16 05:31

我正在写一个程序,有时候会遇到错误。遇到错误时,它会弹出一个Tkinter对话框,询问用户是否要继续。这是一个更复杂的版本:

keep_going = False
KeepGoingPrompt(keep_going)
if not keep_going:
    return

这个提示会把keep_going设置为True,或者保持为False。问题是,当KeepGoingPrompt打开时,代码似乎还在继续执行。我尝试保存prompt的引用,并添加一个像这样的循环:

while prompt:
    time.sleep(1)

但是Python在这个循环中卡住了,程序就冻结了。有没有更好的方法来解决这个问题?

谢谢

2 个回答

0

1) 你是在IDLE里面运行你的代码吗?可能是因为IDLE让对话框变成了非阻塞的,而实际上它应该是阻塞的。

2) 如果在IDLE外面运行也没有用,那就看看tkinter或者对话框的选项,看看有没有设置是阻塞还是非阻塞的。

1

你可以使用tkMessageBox这个类来弹出一个问题对话框,这个对话框是模态的,也就是说在用户点击一个按钮之前,它不会消失。想了解更多细节,可以查看Tkinter书籍

撰写回答