我有一個基本的程序工作,顯示一個滑塊。我瞭解他們使用基於事件的回調的概念。我想要做的是說更新一個圖像,或者自動更新日誌,而不需要用戶進行交互,所以它基本上一直在調用這個事件。我不確定是否有回調,但不建議任何建議。如何攔截GTK主循環,或者使用python gtk爲主函數設置回調事件?
1
A
回答
4
如果我正確地理解你,你可以使用gobject.timeout_add
來做到這一點。
3
這看起來像輪詢,這是不好的,因爲它是消耗資源的。事實上,你仍然應該使用事件,因爲應該觸發更新的事件應該在圖像發生變化時觸發。
但是,如果你想在後臺執行某些東西,也許你想要的是一個空閒的事件處理程序,每當程序沒有更多的事件處理時,它就會運行。爲此,使用g_idle_add
。如傑里米提出的那樣,如果你想要執行一個動作,比如說每5秒鐘一次,那麼就使用一個定時器事件。您應該使用g_timeout_add_seconds
一秒的時間(避免無緣無故喚醒CPU,這對於良好的電源管理非常有用),或者在毫秒級粒度下使用g_timeout_add
。
相關問題
- 1. 回調和gtk主循環
- 2. GTK:委託函數調用主線程
- 3. GTK#中的Gtk主題#(Windows)
- 4. 如何從使用gtk回調調用的函數返回值?
- 5. Asyncio調用在Gtk主循環中運行
- 6. 如何從主題使用gtk
- 7. 如何將Boost.Asio主循環集成到GUI框架(如Qt4或GTK)中
- 8. 如何在GTK回調+ C
- 9. 如何使用GTK/GIO設置標誌?
- 10. 如何使用GTK +設置CMakeLists?
- 11. 在主循環之前執行Python Tkinter回調函數
- 12. Gtk +回調函數和信號幫助
- 13. gtk + checkbutton設置
- 14. Gtk循環或定時器Cron
- 15. C \ GTK截圖
- 16. GTK的主循環可以從輔助線程運行嗎?
- 17. 在g_callback之後的主循環中更新變量GTK + C
- 18. gtk回調多個參數
- 19. GTK +標題欄主題
- 20. 在手動抽取gtk#事件循環時調度空閒事件
- 21. 爲Python窗口應用GTK主題Ubuntu 14.04
- 22. 調用函數或返回主方法
- 23. GTK主題在Ubuntu軟件中心
- 24. 使用Selenium攔截Javascript函數調用
- 25. GTK刪除事件
- 26. GTK聚焦事件
- 27. 有誰知道如何爲jQuery循環插件設置回調函數?
- 28. 在GTK中覆蓋gnome-settings-daemon的主題設置
- 29. 如何攔截NotifyPropertyChange事件
- 30. Python和d-bus:如何設置主循環?
我已經使用過DBus編程,而timeout_add()正是你想要使用的。 – fandingo 2012-02-08 04:56:53
真棒,像魅力一樣工作,謝謝你,正是我想要的。 **注意:任何將此解讀爲解決方案的人,請確保您的函數返回True或False,如果您返回True,它將永遠運行,如果不是,則返回False。 可以找到代碼:https://github.com/ingenuitas/SimpleCV/blob/master/SimpleCV/examples/display/gtk-example-camera.py – xamox 2012-02-08 20:01:43