I segnali si disconnettono automaticamente quando l'oggetto target viene distrutto? Senza registrare l'ID del segnale da g_signal_connect(), posso rimuovere quel segnale?Come disconnettere un segnale di Gtk?
risposta
Se non ha salvato l'ID gestore di segnale, è possibile cercare utilizzando g_signal_handler_find()
e scollegarlo solito modo, o scollegare i segnali che corrispondono a determinati criteri con g_signal_handlers_disconnect_matched()
o g_signal_handlers_disconnect_by_func()
.
Ovviamente quando l'oggetto di destinazione viene distrutto, i segnali ad esso collegati vengono rimossi (altrimenti ci sarebbe una perdita di memoria enorme, ma leggere l'avviso su g_signal_connect_object). Tuttavia, per chiamare g_signal_handler_disconnect è necessario l'ID del gestore fornito da g_signal_connect
e gli amici.
È possibile utilizzare i metodi * handler_block_by_func * e * handler_unblock_by_func *.
Esempio (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)
Fonte: http://www.pygtk.org/docs/pygobject/class-gobject.html
- 1. Segnale di cambio testo Gtk
- 2. Come disconnettere forzatamente un client in SignalR
- 3. Disconnettere un utente dal server
- 4. Tema Gtk in GTK # (Windows)
- 5. Come creare e caricare un modulo GTK?
- 6. Come tradurre un'app GTK +?
- 7. Come disconnettere l'utente autenticato in ServiceStack?
- 8. Alchemy Websocket Server - Come disconnettere forzatamente un client?
- 9. Come disconnettere un utente dopo l'aggiornamento della pagina?
- 10. Swift: come disconnettere il conteggio degli oggetti?
- 11. Come posso disconnettere un utente dal server in Meteor.js?
- 12. Come disconnettere una connessione sequel esistente ruby in un database?
- 13. Come cambiare NSMenuItem Titolo (Login disconnettere)
- 14. Come disconnettere un utente quando una sessione scade o termina
- 15. GTK detailed_signal
- 16. Come disconnettere completamente il TCPClient? (Indy)
- 17. Come disconnettere l'account Twitter eliminando i cookie?
- 18. Come installare gtk in python2.7?
- 19. Come fare un segnale acustico in Android?
- 20. Come gestire uno schema URL personalizzato in Webkit GTK?
- 21. C'è un modo per collegare un segnale di boost direttamente ad un altro segnale?
- 22. Problemi di filettatura con GTK
- 23. disconnettere a livello di programmazione un utente "specifico"
- 24. Utilizzo di GTK senza DISPLAY
- 25. GTK + Icona di notifica avvio
- 26. GTK # .NET Applicazione senza richiedere GTK # distinto Installa
- 27. Esiste un gtk a banana reattiva?
- 28. Trascinare lo scorrimento in un'app GTK +
- 29. Python GTK (Glade) Notebook
- 30. Apprendimento della GUI con programmazione GTK + 2 o GTK + 3?