2013-08-17 1 views
0

커스텀 GTK 위젯 (기본적으로 카이로 표면 위에 HBox 오버레이)이 있습니다. 창에서 위젯 외부를 클릭하면 그것을 숨기고 싶습니다. 메뉴가 작동하는 것과 유사합니다.외부에서 클릭하면 Gtk 위젯을 숨기는 방법?

grab_focus를 사용하고 포커스 아웃 이벤트가 발생할 때까지 기다렸지 만 위젯이 포커스를 얻지는 못합니다. 포커스가있는 위젯이 아닙니다. [1]

[1] https://developer.gnome.org/pygtk/2.24/class-gtkwidget.html#method-gtkwidget--grab-focus

+0

일부 코드보기 – drahnr

답변

1

당신은 당신이 FOCUS_OUT 이벤트를 사용할 경우 CAN_FOCUS 플래그를 설정해야 할 수도 있습니다.

하지만 메뉴에서 필요한대로 외부를 클릭하여 위젯을 숨기려면 위젯 아래 영역의 이벤트에 연결해야합니다. 이벤트 전파를 막지 않도록주의하면서 윈도우의 button_press 이벤트에 연결할 수 있습니다.