如果用户没有明确中止,如何执行任务?

时间:2015-10-26 07:08:23

标签: python python-2.7 tkinter

我希望有一个对话框,其中包含"计算机将在30秒后关闭,按Cancel以中止"如果没有输入,请将其关闭。

我已经检查过Tk和pymsgbox,但两种情况都是如此: 在执行下一条指令之前,用户必须单击OKCancel

这是我到目前为止所做的:
1.创建一个单独的线程,打开消息框 2.设置全局变量,以防用户响应消息框 3.在主线程中检查用户是否连续响应N秒(在每次检查之间使用睡眠) 4.如果用户在N秒内没有取消操作,则从主线程关闭系统。

这有效,但感觉有点哈哈。有没有更好的方法呢?最好是在Tkinter,但我也可以使用任何其他包。

PS:我使用的是Ubuntu 14和Python 2.7

1 个答案:

答案 0 :(得分:1)

PyMsgBox的1.0.5版本现在有一个timeout参数,您可以在对话框关闭之前传递毫秒数。在这种情况下,函数将返回'Timeout'

>>> alert('Hello!', timeout=5000) # closes after 5 seconds