如何在Tkinter窗口打开时暂停Python?
我正在写一个程序,有时候会遇到错误。遇到错误时,它会弹出一个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书籍。