Forum >> Programmazione Python >> GUI >> tkinter treeview come menù

Pagina: 1

Messaggio annotato da Daniele aka Palmux :
Questa discussione è stata spostata dalla categoria Principianti.
Salve a tutti.
Vorrei sapere se è possibile usare gli item di un treeview come se fossero le voci di un menù, cioè associare ad ogni item un evento particolare.
In Delphi è possibile fare in questo modo:
if (TreeView1.Selected.SelectedIndex = 1) then
memo1.Lines.Add('alfa');
if (TreeView1.Selected.SelectedIndex = 2) then
memo1.Lines.Add('alfa2');
In python come devo fare.
Grazie
Salve.
Ho scritto questo codice che ovviamente non funziona in quanto la funzione cambia viene eseguita quando faccio doppio click sul treeview. io invece vorrei che la

suddetta funzione venga eseguita quando faccio doppio click su uno specifico item.

Questo è il codice:


from tkinter import *

from tkinter import ttk

window = Tk()

window.geometry("800x800")

treeview = ttk.Treeview(window)

treeview.pack()




def cambia(evento) :

window.configure(background="yellow")






treeview.config(height = 10)

treeview.heading('#0',text = 'Prova')

treeview.insert('','0','item1',text = 'Primo Item')

treeview.insert('','1','item2',text = 'Secondo Item' )

treeview.insert('','end','item3',text = 'Terzo Item', )

treeview.insert('item1','end',text = 'alfa')





treeview.bind("<Double-1>", cambia)







Grazie spero che qualcuno possa aiutarmi.
Scusami, non ho capito molto, posso farti un esempio ex novo al volo, rigorosamente non testato?
import tkinter as tk
from tkinter import ttk


class App:
    def __init__(self):
        self.root = tk.Tk()
        self.tree = ttk.Treeview()
        self.tree.pack()

        # Inseriamo qualche oggetto
        self.tree.insert("", "end", text="Oggetto 1")
        self.tree.insert("", "end", text="Oggetto 2")
        self.tree.insert("", "end", text="Oggetto 3")

        # Diamo un senso al doppio click del mouse
        self.tree.bind("<Double-1>", self.OnDoubleClick)
        self.root.mainloop()

    def OnDoubleClick(self, event):
        item = self.tree.selection()
        print("Hai appena selezionato: ", self.tree.item(item, "text"))

if __name__ == "__main__":
    app = App()
Prova e fammi sapere se ti è utile.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.