做某事的一般方法是什么?在tkinter中用户不活动一段时间之后?在我的情况下,做某事'将转到已经实例化的开始屏幕(tk.frame)。
答案 0 :(得分:2)
我能想到的最简单的解决方案看起来像这样:
def user_is_inactive():
<your code here>
我们希望能够从事件或直接调用它,因此event
参数必须是可选的:
timer = None
def reset_timer(event=None):
global timer
# cancel the previous event
if timer is not None:
root.after_cancel(timer)
# create new timer
timer = root.after(10000, user_is_inactive)
使用bind_all
意味着每个小部件都可以处理这些事件:
root.bind_all('<Any-KeyPress>', reset_timer)
root.bind_all('<Any-ButtonPress>', reset_timer)
在拨打mainloop
之前,这是一个好时机。
reset_timer()
root.mainloop()
答案 1 :(得分:0)
我承认我没有这方面的经验,但也许某种看门狗定时器可以工作?计时器将计入您想要的时间,但是只要元素被激活,它就会重置计数器。这个概念在微控制器中使用了很多,但我不确定如何将它应用于python。