Gewusst wie: löschen Sie Elemente aus einer der ttk.Treeview-widget?

ing_scroll = Scrollbar(window1_frame1, orient=VERTICAL)
ingredients = ttk.Treeview(window1_frame1, yscrollcommand=ing_scroll.set, height=5, columns=['Ingredient', 'Amount'], show="headings")
ingredients.heading("Ingredient", text='Ingredient')
ingredients.column("Ingredient", width=7)
ingredients.heading("Amount", text='Amount')
ingredients.column("Amount", width=1)
ing_scroll.config(command=ingredients.yview)
ing_scroll.pack(side=RIGHT, fill=Y)
ingredients.pack(side=LEFT, fill='both', expand=1)

def OnRecpSelect(event):
    DB = menu_combo.get()
    mytable = recipe_combo.get()
    ingredient_list = TKengine.pull_ingredients(DB, mytable)
    # NEED TO CLEAR THE INGREDIENTS TTK:TREEVIEW OBJECT HERE!
    for i in ingredient_list: 
        ingre = i[1]
        amoun = i[2]
        value = ingre,amoun
        ingredients.insert('',0,values=value)

ingredient_list ist eine Liste, die zeigt so etwas wie... ('Zucker', '1 Tasse') und so weiter... Die def ist für ein Kombinationsfeld ausgewählt ist, also was ich möchte ist, dass das treeview zu löschen und nicht nur halten Sie das hinzufügen mehr Zutaten. Leider sehe ich nicht ein clear() Methode.

Wenn es eine programmatische Möglichkeit, herauszufinden, was zuerst da (das aufzählen einer rowcount wäre gut...) dies treibt mich Nüsse. Ich habe bemerkt, in den docs, können Sie die delete-Methode, aber es will wissen, was das Element zu löschen... wenn ich mit:

ingredients.delete('',0)

Bekomme ich

TclError: Item 0 not found

Also ich würde davon ausgehen, es will so etwas wie "Zucker", wie die Element...

natürlich ist es ein catch 22, weil, wenn Sie wählen Sie die combobox und möchten, deaktivieren Sie die Zutaten in der Strukturansicht die den gleichen Wirkstoff Elemente sind nicht in jedem Rezept, wie können wir also wissen, welche Einträge zu löschen sind?...

Bitte lassen Sie mich wissen, wenn Sie weitere details... ich bin ziemlich neu in der Arbeit mit dem treeview-Objekt, aber Ihr macht mich wollen nur arbeiten mit zwei Listboxen, die auf einer Leinwand.

Schreibe einen Kommentar