Как отключить сигнал Gtk?

Сигналы будут автоматически отключены, когда целевой объект будет уничтожен? Не записывая идентификатор сигнала из g_signal_connect(), я могу удалить этот сигнал?

Ответ 2

Конечно, когда целевой объект уничтожается, сигналы, связанные с ним, удаляются (в противном случае произошла бы большая утечка памяти, но прочитайте предупреждение о g_signal_connect_object). Однако для вызова g_signal_handler_disconnect вам нужен идентификатор обработчика, заданный g_signal_connect и друзьями.

Ответ 3

Вы можете использовать методы * 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)

Источник: http://www.pygtk.org/docs/pygobject/class-gobject.html