如何在Python GTK中拦截GTK主循环或为主函数设置回调事件?
我有一个简单的程序,可以显示一个滑块。我明白滑块是通过事件来使用回调的概念。我想做的是自动更新一个图片,或者自动更新日志,而不需要用户去操作,也就是说,我希望这个事件能够一直被调用。我不太确定是否有这样的回调,但任何建议都非常欢迎。
2 个回答
3
这看起来像是在轮询,这种做法不好,因为它会消耗很多资源。实际上,你应该使用事件,因为当你的图片发生变化时,应该触发一个事件来更新。
不过,如果你想在后台执行一些操作,可能你需要的是一个空闲事件处理器,它会在程序没有其他事件需要处理时运行。你可以使用 g_idle_add
来实现这个功能。
如果你想每隔5秒执行一次某个动作,就应该使用定时器事件,正如Jeremy所建议的那样。你可以使用 g_timeout_add_seconds
来设置以秒为单位的定时(这样可以避免不必要地唤醒CPU,有助于节省电力),或者使用 g_timeout_add
来设置以毫秒为单位的定时。
5
如果我理解得没错,你可以使用 gobject.timeout_add
来实现这个功能。