Seite 1 von 1

Strings in Treeview item values

Verfasst: Samstag 2. Juli 2016, 10:21
von skab
Hallo zusammen,

ich habe eine kurze Frage zu ttk.Treeview.

Ich möchte gerne in den values der items Strings speichern, die nur aus Ziffern bestehen können. Wenn ich diese mit der insert-Methode hinzufüge, werden daraus ints. Mein Problem dabei ist, dass führende Nullen dabei verloren gehen. Sie werden zwar noch (im Widget) angezeigt, aber ich weiß nicht, wie ich die Nullen wieder da raus bekomme, z.B. wenn ich den Inhalt einer selektierten Zeile verwenden will.

Kann mir da jemand helfen?

Viele Grüße
skab

Code: Alles auswählen

from Tkinter import Tk
import ttk

tk = Tk()
tree = ttk.Treeview(tk, columns=("name"))
tree['show'] = 'headings'
tree.insert("", "end", values=("Hello"))
tree.insert("", "end", values=("00001"))
tree.pack()

for child in tree.get_children():
    print(tree.item(child)["values"])

def on_double_click(event):
    item = tree.focus()
    selection = str(tree.item(item)["values"][0])
    print(selection)
    
tree.bind("<Double-Button-1>", on_double_click)

tk.mainloop()

Re: Strings in Treeview item values

Verfasst: Samstag 2. Juli 2016, 11:28
von BlackJack
@skab: Am besten verwendest Du die angezeigten Werte nicht zum speichern, sondern machst das in einer Python-Datenstruktur. Die `insert()`-Methode liefert eine Item-Id zurück, die man beispielsweise als Schlüssel für ein Wörterbuch verwenden kann. Dann kann man auch komplexere Werte speichern als sich durch Zeichenketten oder Zahlen darstellen lassen.

Re: Strings in Treeview item values

Verfasst: Samstag 2. Juli 2016, 12:20
von skab
Das klingt sehr sinnvoll, vielen Dank!