2012-08-20 107 views
5

Python 3.2とtkinterを使用。 Button-3(右クリック)を、マウスカーソルがホバーオーバーしているTreeviewウィジェットの項目を選択する方法を教えてください。私は基本的にButton-3イベントで、現在の単一の左クリックと同じ方法で項目を選択します。python tkinter treeview右クリック(Button-3)イベントでツリービューの項目を選択

+2

私はそれを理解することができました。ツリービューのidentify_rowメソッドを使用して、y座標をメソッドに渡すと、マウスがホバーしている行の項目の現在のiidが返されます。 – Twist

+0

ようこそ。能力があれば解決策として投稿してください。そうすれば、他の人はこれをより簡単に達成する方法を見ることができます。 – mgilson

答えて

6

あなたは半分あなた自身の質問に答えました。私のコードをコード化してテストしましたので、私のソリューションのスニペットをここに掲載することに何の害もないと考えました。

def init(self): 
    """initialise dialog""" 
    # Button-3 is right click on windows 
    self.tree.bind("<Button-3>", self.popup) 

def popup(self, event): 
    """action in event of button 3 on tree view""" 
    # select row under mouse 
    iid = self.tree.identify_row(event.y) 
    if iid: 
     # mouse pointer over item 
     self.tree.selection_set(iid) 
     self.contextMenu.post(event.x_root, event.y_root)    
    else: 
     # mouse pointer not over item 
     # occurs when items do not fill frame 
     # no action required 
     pass 
関連する問題