当前位置: 首页 > 面试题库 >

如何清除ttk.Treeview小部件中的项目?

司马飞
2023-03-14
问题内容
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是一个显示诸如…(“糖”,“ 1杯”)之类的列表,依此类推…
def是针对所选组合框的,所以我想要的是清除树形视图而不是只是继续添加更多的成分。不幸的是我没有看到一种clear()方法。

如果有一种编程的方式来识别首先存在的内容(枚举行数将是个好方法……),这真让我发疯。我确实在文档中注意到您可以使用delete方法,但是它想知道要删除的项目…如果使用:

ingredients.delete('',0)

我懂了

TclError: Item 0 not found

所以我认为它需要像“糖”这样的东西…

当然这是个难题22,因为如果您选择组合框并想要清除成分树视图,则并不是每个配方中都包含相同的成分项目,那么我们如何知道要删除哪些项目?…

如果您需要更多详细信息,请告诉我…使用Treeview对象是我的新手,但是它让我只想在画布上使用两个列表框。


问题答案:

当您在树上插入一个项目时,该insert方法将返回一个项目ID。这就是您提供给delete方法的东西。

同样,给定一个项目ID(例如根项目),您可以使用该get_children方法获取其所有子项的列表。如果您不给任何参数,get_children它将返回属于根元素的所有项目的列表。然后,您可以遍历此列表以删除项目。

所有这些都记录在docs.python.org的treeview文档中。



 类似资料:
  • 问题内容: 有没有办法清除(删除)布局中的所有小部件? 现在,我想用新的小部件替换小部件。有一种简单的方法可以清除其中的所有小部件吗?我看不到任何这样的方法。 问题答案: 经过大量研究(此过程花了很长时间,因此我将其添加到此处以供将来参考),这是我发现真正清除和 删除 布局中的小部件的方法: 关于 QWidget 的文档说的是: 删除其父项时,将删除新的窗口小部件。 重要说明: 您需要向后循环,因

  • 问题内容: 我将localhost中的MySQL用作在R中执行统计信息的“查询工具”,也就是说,每次运行R脚本时,我都会创建一个新的数据库(A),创建一个新的表(B),然后将数据导入B ,提交查询以获取所需信息,然后删除B并删除A。 对于我来说,它工作正常,但是我意识到ibdata文件的大小正在迅速增加,我没有在MySQL中存储任何内容,但是ibdata1文件已超过100 MB。 我在设置中使用了

  • 问题内容: 我有一个要删除的带有孩子的小部件。我怎么做?我找不到任何,,或任何类似的文档。我只能看到如何从布局中删除内容,但是显然,它并没有从实际的窗口小部件中删除它。 问题答案: 好吧,这可行:在要删除的小部件上,调用。我喜欢添加到布局中的方式,将小部件添加到容器中,但是从布局中删除则不…有趣的东西。

  • 问题内容: 我有一个要动态更改的小部件列表。 如何从窗口中删除小部件? 问题答案: 您可以调用以删除小部件(如果用于将其添加到窗口中)。 例: 如果使用,稍后可以再次显示该小部件,再次调用。如果您想永久删除它,请调用该小部件(这样您将无法重新添加它)。 如果你使用的方法,你可以使用或以 隐藏 的窗口小部件。

  • 问题内容: 我在gui中有一个jList,可以在其中使用“添加”按钮添加一些数据。我想添加另一个名为“清除”的按钮,它将清除所有元素。我尝试了这个: 当我点击添加按钮时,这将添加元素。 当我单击清除按钮时,这将删除元素。 但是,当我重新单击“添加”按钮时, 问题答案: 您不应该只是为了删除其中的某些项目而重新初始化整个JList小部件。相反,您应该操纵列表模型,因为对它的更改会“自动”同步回UI。

  • 本文向大家介绍如何清除在项目中无用的css代码呢?相关面试题,主要包含被问及如何清除在项目中无用的css代码呢?时的应答技巧和注意事项,需要的朋友参考一下 1、IDE中,会对没有使用到的样式,自己进行检测,删除时候,还需要手动删除。 2、webpack中,有基于消除无用css的插件(purifycss-webpack purify-css),不过需要提供html文件的模板,因为需要遍历这个模板,才