Te damos el hallazgo a este atasco, o por lo menos eso creemos. Si continuas con preguntas puedes dejarlo en el apartado de comentarios, que para nosotros será un placer ayudarte
Solución:
Si desea que suceda algo cuando el usuario haga doble clic, agregue un enlace a "
. Dado que un solo clic establece la selección, en su devolución de llamada puede consultar el widget para averiguar qué está seleccionado. Por ejemplo:
import tkinter as tk
from tkinter import ttk
class App:
def __init__(self):
self.root = tk.Tk()
self.tree = ttk.Treeview()
self.tree.pack()
for i in range(10):
self.tree.insert("", "end", text="Item %s" % i)
self.tree.bind("", self.OnDoubleClick)
self.root.mainloop()
def OnDoubleClick(self, event):
item = self.tree.selection()[0]
print("you clicked on", self.tree.item(item,"text"))
if __name__ == "__main__":
app = App()
La solución anterior falla cuando se seleccionan varios elementos y el usuario usa SHIFT+CLICK
(al menos en una Mac).
Aquí hay una mejor solución:
import tkinter as tk
import tkinter.ttk as ttk
class App:
def __init__(self):
self.root = tk.Tk()
self.tree = ttk.Treeview()
self.tree.pack()
for i in range(10):
self.tree.insert("", "end", text="Item %s" % i)
self.tree.bind("", self.OnDoubleClick)
self.root.mainloop()
def OnDoubleClick(self, event):
item = self.tree.identify('item',event.x,event.y)
print("you clicked on", self.tree.item(item,"text"))
if __name__ == "__main__":
app = App()
Sé que esto es antiguo, pero este código también imprimirá varios elementos seleccionados en una vista de árbol.
def on_double_click(self, event):
item = self.tree.selection()
for i in item:
print("you clicked on", self.tree.item(i, "values")[0])
Reseñas y calificaciones de la guía
Tienes la posibilidad dar visibilidad a este tutorial si te ayudó.
¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)