當目標物體被破壞時,信號會自動斷開嗎?不記錄來自g_signal_connect()的信號ID,我可以刪除該信號嗎?如何斷開Gtk的信號?
13
A
回答
13
如果沒有保存信號處理程序ID,您可以使用g_signal_handler_find()
搜索並斷開它通常的方式,或者斷開搭配g_signal_handlers_disconnect_matched()
或g_signal_handlers_disconnect_by_func()
特定標準的任何信號。
7
當然,當目標對象被破壞時,連接到它的信號將被刪除(否則會有大量內存泄漏,但請閱讀g_signal_connect_object上的警告)。但是,要撥打g_signal_handler_disconnect,您需要g_signal_connect
和朋友給出的處理ID。
1
您可以使用* handler_block_by_func *和* handler_unblock_by_func *方法。
實施例(PyGTK的):
def on_treeview_fixedexpenses_cursor_changed(self, widget):
self.checkbutton_fixedexpensetax.handler_block_by_func(self.on_checkbutton_fixedexpensetax_toggled)
self.updateCurrentFixedExpense()
self.checkbutton_fixedexpensetax.handler_unblock_by_func(self.on_checkbutton_fixedexpensetax_toggled)
相關問題
- 1. gtk.builder如何斷開信號?
- 2. 如何斷開方法在QML信號
- 3. Django的信號斷開不工作
- 4. 插槽斷開後的Qt信號
- 5. 在條件中斷開PyQt信號
- 6. Qt信號和插槽對象斷開?
- 7. 如何在測試過程中禁用/斷開m2m_changed信號?
- 8. 如何判斷ManualResetEvent是否有信號或無信號?
- 9. GTK中的信號和插槽
- 10. Python的GTK將信號組合框
- 11. 信號如何中斷系統調用
- 12. 在matplotlib中連接信號+ gtk
- 13. Python GTK +:創建自定義信號?
- 14. GTK treeview添加'按鍵事件'信號
- 15. Gtk +回調函數和信號幫助
- 16. 創建併發出GTK信號
- 17. GTK + 2與GTK + 3信號「曝光/繪製/渲染」事件
- 18. 如何發信號通知NSOutputStream到流的端點的斷開/閉合?
- 19. 我是否還需要斷開Qt5.5中的信號的lambda?
- 20. 忽略「斷管」信號
- 21. 斷開模型的信號,然後在django重新連接
- 22. Django的:斷開post_save信號以避免遞歸
- 23. 星號「撥號()函數」斷開呼叫時,用戶帳號信用變爲零
- 24. 信號器捕獲保持活動故障/斷開連接
- 25. 多次中斷信號量的問題
- 26. 信號燈不斷崩潰的OS X
- 27. 如何讀取斷開的符號鏈接指向的路徑?
- 28. 用python gtk鍵盤中斷?
- 29. 格萊德,GtkBuiler或GTK意外交換的信號處理
- 30. gtk +窗口/對話框「呈現」時發出的信號