如何拦截GTK主循环,或者使用python GTK为主函数生成回调事件?

如何拦截GTK主循环,或者使用python GTK为主函数生成回调事件?,python,gtk,pygtk,Python,Gtk,Pygtk,我有一个显示滑块的基本程序。我理解他们使用基于事件的回调的概念。我想做的是更新一个图像,或者在没有用户交互的情况下自动更新日志,所以它基本上一直在调用这个事件。我不确定是否有回调,但如果有任何建议,我们将不胜感激。如果我理解正确,您可以使用它来执行此操作。这看起来像轮询,这很糟糕,因为它消耗资源。事实上,您仍然应该使用事件,因为应该触发更新的事件应该在图像更改时触发 但是,如果您想在后台执行东西,那么可能需要一个空闲的事件处理程序,每当程序没有更多的事件要处理时,它都会运行。用这个 如果你想执行

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

如果我理解正确,您可以使用它来执行此操作。

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

但是,如果您想在后台执行东西,那么可能需要一个空闲的事件处理程序,每当程序没有更多的事件要处理时,它都会运行。用这个


如果你想执行一个动作,比如说,每5秒,然后使用一个计时器事件,就像Jeremy建议的那样。您应该使用一秒的时间倍数(它可以避免无故唤醒CPU,这对于良好的电源管理非常有用)或毫秒粒度。

我已经将其用于DBus编程,timeout_add()正是您想要使用的。太棒了,工作得很好,谢谢,正是我想要的**注意:任何将此作为解决方案阅读的人,请确保您的函数返回True或False,如果您返回True,它将永远运行,如果您不返回False,它将永远运行。可在以下位置找到代码: