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, но из-за этого мне хочется просто работать с двумя списками на холсте.