我希望有一个对话框,其中包含"计算机将在30秒后关闭,按Cancel
以中止"如果没有输入,请将其关闭。
我已经检查过Tk和pymsgbox,但两种情况都是如此:
在执行下一条指令之前,用户必须单击OK
或Cancel
。
这是我到目前为止所做的:
1.创建一个单独的线程,打开消息框
2.设置全局变量,以防用户响应消息框
3.在主线程中检查用户是否连续响应N秒(在每次检查之间使用睡眠)
4.如果用户在N秒内没有取消操作,则从主线程关闭系统。
这有效,但感觉有点哈哈。有没有更好的方法呢?最好是在Tkinter,但我也可以使用任何其他包。
PS:我使用的是Ubuntu 14和Python 2.7
答案 0 :(得分:1)
PyMsgBox的1.0.5版本现在有一个timeout
参数,您可以在对话框关闭之前传递毫秒数。在这种情况下,函数将返回'Timeout'
。
>>> alert('Hello!', timeout=5000) # closes after 5 seconds