2012-08-20 157 views
5

Usando Python 3.2 y tkinter. ¿Cómo se hace para que el Botón-3 (clic derecho) seleccione el ítem en un widget Treeview sobre el que se mueve el cursor del mouse? Básicamente, quiero que el evento Button-3 seleccione el elemento de la misma forma que lo hace el clic izquierdo actual.python tkinter vista de árbol clic derecho (Botón-3) evento para seleccionar el elemento en treeview

+2

Me las he arreglado para resolverlo. Usando el método identify_row de Treeview y pasando la coordenada y al método, devuelve el iid actual del ítem en la fila sobre la que se encuentra el mouse. – Twist

+0

Bienvenido a SO. Siéntase libre de publicar eso como una solución si puede. De esa manera, otros podrán ver cómo lograr esto más fácilmente. – mgilson

Respuesta

6

Has respondido la mitad de tu propia pregunta. Simplemente codifiqué y probé mi código, así que no pensé en dañar la publicación de mi fragmento de solución aquí.

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 
Cuestiones relacionadas