首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环生成treeview时的唯一iid

使用for循环生成treeview时的唯一iid
EN

Stack Overflow用户
提问于 2021-10-19 22:49:13
回答 1查看 37关注 0票数 0

我正在尝试生成一个带有for循环的treeview来显示一堆数据。现在,我可以轻松地生成一个树视图,而无需命名iid和执行类似tree.insert()的操作,但是,我正尝试在每个生成的父行下添加一个下拉列表(子)。treeview将如下所示:

代码语言:javascript
复制
list = [data1,data2,data3,data4]
-_________________-
data1
   dir1
   dir2
data2
   dir1
   dir2
data3
   dir1
   dir2
data4
   dir1
   dir2

我尝试创建唯一的变量名,然而,当我生成它们时,它们当然会在我定义树视图时被覆盖,并且我得到了以下错误_tkinter.TclError:项目1已经存在,tkinter树视图我的代码,我已经尝试:

代码语言:javascript
复制
tree = ttk.Treeview(self.home_frame)

        tree["columns"] = ("one", "two")
        tree.column("one", width=100)
        tree.column("two", width=100)
        tree.heading("one", text="coulmn A")
        tree.heading("two", text="column B")

        tree.insert("", 0, text="Line 1", values=("1A", "1b"))

        data = ['stocks','crypto','Forex','ETF','mutual funds']

        n=1
        for i in data:
            print(i)
            j = str(n)
            i+j = tree.insert("", n, "dir2", text=str('l'), values=("foo","bar"))

            tree.insert(i+j, "end", "dir 2", text="sub dir 2", values=("2A", "2B"))
            tree.insert(i+j, "end", "dir 3", text="sub dir 2", values=("2A", "2B"))
            n+=1
        tree.grid(row=2,column=0)
EN

回答 1

Stack Overflow用户

发布于 2021-10-20 00:56:55

如果未指定iid选项,则Treeview.insert()将为您创建唯一的iid。所以只需使用.insert()返回的唯一iid即可

代码语言:javascript
复制
for item in data:
    iid = tree.insert("", "end", text=item, values=("foo","bar"))
    tree.insert(iid, "end", text="sub dir 1", values=("2A", "2B"))
    tree.insert(iid, "end", text="sub dir 2", values=("2A", "2B"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69638423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档