更改系统时间后,Tkinter after()失败

时间:2019-04-26 15:53:20

标签: linux python-3.x tkinter time raspberry-pi3

是否有一种方法可以在系统时间更新时取消和重新安排tkinter after()事件,或者抢先更新after()调度程序?

说明

我有一个在Rkbian(使用Raspberri Pi的Debian-Linux的叉子)上使用Python3.7在tkinter中创建的自定义GUI。我创建了一个屏幕来调整系统时间。

如果将日期和时间设置为将来,则一切正常,但是如果将其设置为过去,则使用tkinter after()方法调度事件的任何事情都不会发生。我相信after()可以通过轮询系统时间来工作,并且计划的时间现在已经很远了。

我通过将时间设置为过去的一分钟来验证了这一点。最初,使用after()函数的所有元素都停止更新,但是GUI仍对单击事件做出响应。一分钟后,这些元素继续更新。

相关

This Question早在2010年就遇到了同样的问题,但没有解决方案。


侧面说明-运行GUI的用户没有权限设置时间,因此它实际上是在启动服务(它有权执行时间),并将时间字符串写入FIFO管道。以root用户身份运行的服务将读取管道并更新时间。我已经验证了使用此方法正确设置的时间。

0 个答案:

没有答案