2011-11-07 12 views

Trả lời

7

Tất nhiên khi đối tượng đích bị hủy, các tín hiệu kết nối với nó sẽ bị xóa (nếu không sẽ có rò rỉ bộ nhớ lớn, nhưng đọc cảnh báo trên g_signal_connect_object). Tuy nhiên, để gọi g_signal_handler_disconnect, bạn cần id trình xử lý được cung cấp bởi g_signal_connect và bạn bè.

1

Bạn có thể sử dụng các phương thức * handler_block_by_func * và * handler_unblock_by_func *.

Ví dụ (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) 

Nguồn: http://www.pygtk.org/docs/pygobject/class-gobject.html