2010-12-31 8 views
4

사용자가 트리 뷰의 행에서 마우스 오른쪽 버튼을 클릭 할 때 어떻게합니까?GtkTreeView의 행 오른쪽 클릭

+2

여기에 대한 답변으로 솔루션을 게시과 이용 약관을 읽고 동의를 바랍니다. – CodeMouse92

답변

4

그것의 정말 쉽습니다, 그냥 "버튼을 눌러 이벤트"신호를 듣고 선택한 행 내기 위해 treeview.get_path_at_pos()를 사용

def button_press_event(treeview, event): 
    if event.button == 3: # right click 
     model, path = treeview.get_path_at_pos(int(event.x), int(event.y)) 
     # do something with the selected path 

treeview.connect('button-press-event' , button_press_event) 
+0

Python Gtk + 3.0 튜토리얼의 [Chapter 16 : 메뉴] (http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html)도 참조하십시오. – phineas

+1

GTK2 대 GTK3이지만 [pygtk2doc] (http://www.pygtk.org/pygtk2reference/class-gtktreeview.html#method-gtktreeview--get-path-at-pos)에 따르면 – Zvika

+0

주의 : "button-press-event"를 반드시 원하지 않는다면 (예 : 'path-column-__, __ = treeview.get_path_at_pos (int (event.x), int 팝업 메뉴를 표시하는 것입니다. 예를 들어, 클릭 한 행에서 일부 동작을 실행하려면 "button-release-event"를 원할 것입니다. 이렇게하면 새 행을 마우스 오른쪽 버튼으로 클릭 할 때 다른 것이 발생하기 전에 해당 행이 선택됩니다 ("button-press-event"의 기본 처리기). –

관련 문제