Strings in Treeview item values

Fragen zu Tkinter.
Antworten
skab
User
Beiträge: 2
Registriert: Samstag 2. Juli 2016, 10:00

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()
Zuletzt geändert von Anonymous am Samstag 2. Juli 2016, 11:09, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
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.
skab
User
Beiträge: 2
Registriert: Samstag 2. Juli 2016, 10:00

Das klingt sehr sinnvoll, vielen Dank!
Antworten