대상 객체가 파괴되면 신호가 자동으로 끊어 집니까? g_signal_connect()에서 신호 ID를 기록하지 않으면 해당 신호를 제거 할 수 있습니까?Gtk의 신호를 끊는 방법?
13
A
답변
13
, 당신은 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가 필요합니다. 당신은 신호 처리기 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. 기존 소켓을 끊는 방법?
- 2. 줄의 문자열을 끊는 방법
- 3. localhost에서 연결을 끊는 방법?
- 4. MySQL 연결을 끊는 방법
- 5. 전화를 자동으로 끊는 방법?
- 6. Android에서 전화를 끊는 방법?
- 7. erl_call 연결을 끊는 방법
- 8. HBase를 끊는 방법
- 9. Google지도와 GTK의 상호 작용
- 10. 웹 페이지에서 줄을 끊는 방법?
- 11. 프로젝트의 SVN 링크를 끊는 방법?
- 12. 코드로 인터넷 연결을 끊는 방법?
- 13. gtk.builder에서 신호 연결을 끊는 방법은 무엇입니까?
- 14. GTK의 신호와 슬롯
- 15. GTK의 timeout_id는 무엇입니까?
- 16. GTK의 스플래시 화면
- 17. GTK의 Draggable Linked Box
- 18. Gtk의 드로잉 도구 # MonoDevelop
- 19. gtk의 목록 상자
- 20. GTK의 VBox의 또는 hbox에
- 21. 웹킷 gtk의 웹 코어
- 22. Gtk의 위젯 쌓기 +
- 23. pyqt4에있는 gtk의 확장자와 같습니다.
- 24. 파이썬에서 가져 오기 루프를 끊는 방법
- 25. 리포지토리 간의 순환 종속성을 끊는 방법
- 26. 기능이 불연속 인 연결선을 끊는 방법
- 27. Boost :: asio 소켓 - 연결을 끊는 방법?
- 28. 데이터베이스에 기존 루비 sequel 연결을 끊는 방법?
- 29. 루프를 건너 뛰고 끊는 방법 R
- 30. linux : 원격 사용자 액세스를 끊는 방법?