如何拦截GTK主循环,或者使用python-GTK为主函数设置回调事件



我有一个显示滑块的基本程序。我理解他们使用基于事件的回调的概念。我想做的是更新一个图像,或者在没有用户交互的情况下自动更新日志,所以它基本上一直在调用这个事件。我不确定是否有回调,但任何建议都将不胜感激。

如果我理解得对,您可以使用gobject.timeout_add来完成此操作。

这看起来像是轮询,这很糟糕,因为它消耗资源。事实上,您仍然应该使用事件,因为应该触发更新的事件应该在图像发生更改时触发。

然而,如果你想在后台执行一些东西,也许你想要的是一个空闲的事件处理程序,每当程序没有更多的事件要处理时,它就会运行。使用g_idle_add

如果你想执行一个动作,比如说,每5秒执行一次,那么按照Jeremy的建议,使用计时器事件。您应该使用g_timeout_add_seconds一秒的时间倍数(它可以避免无故唤醒CPU,这对良好的电源管理很有用),或者使用g_timeout_add毫秒粒度。

最新更新