2012-08-20 10 views
5

Verwendung von Python 3.2 und tkinter. Wie machst du mit dem Button-3 (Rechtsklick) den Gegenstand in einem Treeview-Widget, über dem der Mauszeiger schwebt? Ich möchte im Grunde, dass das Ereignis Button-3 das Element auf dieselbe Weise auswählt wie der aktuelle einzelne Linksklick.python tkinter treeview Rechtsklick (Button-3) Ereignis zur Auswahl eines Elements in der Baumansicht

+2

Ich habe es geschafft, es herauszufinden. Mit der identify_row-Methode der Treeview und der Übergabe der y-Koordinate an die Methode wird die aktuelle iid des Elements in der Zeile zurückgegeben, über der die Maus schwebt. – Twist

+0

Willkommen bei SO. Fühlen Sie sich frei, das als eine Lösung zu veröffentlichen, wenn Sie in der Lage sind. Auf diese Weise können andere sehen, wie dies leichter zu erreichen ist. – mgilson

Antwort

6

Sie haben die Hälfte Ihrer eigenen Frage beantwortet. Ich habe meinen Code nur codiert und getestet, also dachte ich mir nichts aus, wenn ich hier mein Lösungs-Snippet poste.

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 
Verwandte Themen