Как удалить элементы из виджета ttk.Treeview?

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 - это список, который отображает что-то вроде ... ('Sugar', '1 Cup') и так далее ... Def для выбранного поля со списком, поэтому я бы хотел, чтобы дерево, чтобы очистить, а не просто добавлять больше ингредиентов. К сожалению, я не вижу метода clear () .

Если есть программный способ определения того, что находится первым (неплохо было бы перечислить количество строк ...), это сводит меня с ума. Я заметил в документации, что вы можете использовать метод удаления, но он хочет знать, какой элемент нужно удалить ... если я использую:

ingredients.delete('',0)

Я получаю

TclError: Item 0 not found

Итак, я предполагаю, что он хочет что-то вроде 'Sugar 'как элемент ...

, конечно, это уловка 22, потому что, если вы выберете поле со списком и хотите очистить древовидное представление ингредиентов, одни и те же элементы ингредиентов есть не в каждом рецепте, так как мы узнаем, какие элементы удалить? ...

Пожалуйста, дайте мне знать, если вам понадобятся какие-либо подробности ... Я новичок в работе с объектом treeview, но из-за этого мне хочется просто работать с двумя списками на холсте.

5
задан Brian Tompsett - 汤莱恩 19 August 2015 в 09:22
поделиться