【问题标题】:Deleting a List of Labels From The Tkinter Window Placed In The Grid从放置在网格中的 Tkinter 窗口中删除标签列表
【发布时间】:2016-08-22 17:31:03
【问题描述】:

一个。有一个场景,我创建了一个标签列表,如下所示。

class test_template:
def __init__(self, master):
    self.master = master

...

def nb_code(self):
    if nb_cnt == 0:
        for i in range (int(no_of_fs)):
            self.enul = Label(root, text="Enter The Number Of Fruits In Basket%d\n"%i)
            self.enul.grid(row=i+1)

    # Trying To Delete The List Of Labels  
    elif nb_cnt == 2:
        for i in range (int(no_of_fs)):
            self.enul.grid_forget() 

b.假设我有一个包含 3 个标签的列表,当我尝试通过循环删除它们时,只有第一个会被删除,这是有道理的,因为它保存了分配的最后一个标签的标签信息。

c。 但是在这种情况下,我需要做什么来删除标签的完整列表?可以通过在总网格中搜索“标签”名称并删除它们来完成吗?或者怎么做?

请分享你的cmets!!

【问题讨论】:

  • 你能保留标签列表而不是重新分配给同一个变量吗?
  • @FamousJameous:好主意...我尝试将标签附加到标签列表中,并根据列表编号删除它们,效果很好。但是除了同样,如果标签列表分配给相同的变量?
  • 我不知道有什么方法可以做到这一点。有没有理由避免列出清单?

标签: python python-2.7 tkinter tkinter-canvas


【解决方案1】:

您可以获取root children 并搜索您的标签。

for child in root.children.values():
    info = child.grid_info()
    if info['column'] == 0:
        child.grid_forget()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    相关资源
    最近更新 更多