2010-12-31 10 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:Menus](http://python-gtk-3-tutorial.readthedocs.org/en/latest/menus.html)も参照してください。 – phineas

+1

多分GTK2とGTK3ですが、[pygtk 2 doc](http://www.pygtk.org/pygtk2reference/class-gtktreeview.html#method-gtktreeview--get-path-at-pos)によると、 – Zvika

+0

気をつけてください:あなたの目指していない限り、必ずしも "button-press-event"を望むわけではありません(例えば、ポップアップメニューを表示することです。たとえば、クリックした行で何らかのアクションを実行したい場合は、「button-release-event」が必要です。これにより、新しい行を右クリックすると、何か他のことが起こる前に選択されます(「button-press-event」のデフォルトのハンドラ)。 –

関連する問題