《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗

2024-06-04 9270阅读

  • tkinter Treeview 控件的使用方法

  • 创建 Treeview 控件

  • Treeview 参数解读

  • 作为表格使用 Treeview

  • 作为树使用 Treeview

  • Treeview 插入子节点

  • Treeview 事件

  • 如何获取当前选中项

  • 单选项获取

  • 多选项获取

  • Tree 选中子节点

    更多《Tkinter 实用教程》系列文章

    tkinter Treeview 控件的使用方法


    创建 Treeview 控件

    创建 Treeview 使用 ttk.Treeview 类,语法如下:

    tree = ttk.Treeview(master, options)

    Treeview 参数解读

    | 参数 | 作用 |

    | — | — |

    | columns | 接收一个列表(tuple),列表中的每个元素都代表表格中的一列(可以理解为 ID),列表的长度就是表格的列数。 |

    | displaycolumns | 接收一个列表(tuple),列表每个元素都代表 columns 中列的编号,用于设置列表要显示的列,以及显示列的顺序(没有在列表中的列不会显示)。传入"#all"显示所有列。 |

    | height | 表格的高度,也就是能够显示的行数。 |

    | padding | 内容距离组件边缘的距离。 |

    | selectmode | 有 "extended"(默认选项)、"browse"、"none"三种选项,分别代表多选(Ctrl+鼠标左键),单选以及不能改变选项。 |

    | show | 有 "tree"、"headings"、"tree headings" 三种选项,分别代表显示图标列(编号为 "#0")、不显示图标列(仅显示数值列)以及显示所有列(图标列和数值列)。 个人理解:用作树需要加上"tree",用作表使用"headings"。 |

    作为表格使用 Treeview

    以下代码展示了将 Treeview 控件作为表格使用,展示一系列数据的方法:

    from tkinter import *

    from tkinter import ttk

    “”"

    魏大王学编程(www.weidawang.xyz)

    tkinter 实用教程系列

    Treeview 作为表格使用的简单案例

    “”"

    main = Tk()

    data = [(1, “小明”, 23, ‘男’, ‘2021-09-21’), (2, “小强”, 23, ‘男’, ‘2021-09-21’),

    (3, “小红”, 23, ‘女’, ‘2021-09-21’), (4, “铁头”, 23, ‘男’, ‘2021-09-21’)]

    tree = ttk.Treeview(main, columns=(‘id’, ‘name’, ‘age’, ‘sex’, ‘birth’), show=“headings”, displaycolumns=“#all”)

    tree.heading(‘id’, text=“编号”, anchor=W)

    tree.heading(‘name’, text=“姓名”, anchor=W)

    tree.heading(‘age’, text=“年龄”, anchor=W)

    tree.heading(‘sex’,text=“性别”,anchor=W)

    tree.heading(‘birth’, text=“出生日期”, anchor=W)

    for itm in data:

    tree.insert(“”,END,values=itm)

    tree.pack(expand=1, fill=BOTH)

    main.mainloop()

    代码执行结果如下图所示:

    《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第1张

    作为树使用 Treeview

    from tkinter import *

    from tkinter import ttk

    “”"

    魏大王学编程(www.weidawang.xyz)

    tkinter 实用教程系列

    Treeview 作为树使用的简单案例

    “”"

    main = Tk()

    data = [(1, “小明”, 23, ‘男’, ‘2021-09-21’), (2, “小强”, 23, ‘男’, ‘2021-09-21’),

    (3, “小红”, 23, ‘女’, ‘2021-09-21’), (4, “铁头”, 23, ‘男’, ‘2021-09-21’)]

    tree = ttk.Treeview(main, columns=(‘id’, ‘name’, ‘age’, ‘sex’,‘birth’), show=“tree headings”, displaycolumns=“#all”)

    tree.heading(“#0”, text=“学校”, anchor=W)

    tree.heading(‘id’, text=“编号”, anchor=W)

    tree.heading(‘name’, text=“姓名”, anchor=W)

    tree.heading(‘age’, text=“年龄”, anchor=W)

    tree.heading(‘sex’, text=“性别”, anchor=W)

    tree.heading(‘birth’, text=“出生日期”, anchor=W)

    stu_root = tree.insert(“”, END, text=“学生”)

    man = tree.insert(stu_root, END, text=“男”)

    wom = tree.insert(stu_root, END, text=“女”)

    for itm in data:

    if(itm[3]==“男”):

    tree.insert(man,END,text=itm[1],values=itm)

    else:

    tree.insert(wom,END,text=itm[1],values=itm)

    tree.pack(expand=1, fill=BOTH)

    main.mainloop()

    代码执行结果:

    《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第2张

    如果将代码中 displaycolumns="#all" 修改为 displaycolums=() ,树的效果如下:

    《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第3张

    Treeview 插入子节点

    向 Treeview 对象中插入一个子节点,需要使用 insert 方法:

    itm = tree.insert(options)

    insert 函数的返回值,就是插入节点的对象。

    参数列表如下:

    | 参数 | 描述 |

    | — | — |

    | parent | 指定父节点,如果需要插入根节点,传入""。 |

    | index | 指定插入位置,0表示在头部插入,END表示在尾部插入。 |

    | text | 指定在图标栏展示的内容,也就是在编号"#0"列展示的内容,只有 show 参数包含 tree 时才能看到。 |

    | values | 指定在数据列展示的内容,也就是 columns 指定的列。 |

    | image | 指定图标栏显示的图标,是一个PhotoImage对象 |

    Treeview 事件

    Treeview 有三个虚拟事件分别是:

    • :选中项发生变化时触发该事件;

    • :当菜单项open=True时触发该事件;

    • :当菜单项open=False时触发该事件;

      这些事件的使用方法和之前的控件一样,比较简单,下文有案例,不过多解释。

      如何获取当前选中项

      获取当前选中项有两种情况,第一种就是单选项的获取,比较简单,而多选项的获取稍微复杂了一点。

      单选项获取

      先使用 Treeview 的 focus() 方法获取当前焦点项,再利用 set 方法获取焦点项的值。

      获取到的值就是在插入表、树子节点时时指定的 values 值。

      foc = tree.focus()

      val = tree.set(foc)

      示例代码如下:

      from tkinter import *

      from tkinter import ttk

      “”"

      魏大王学编程(www.weidawang.xyz)

      tkinter 实用教程系列

      Treeview 事件案例

      “”"

      def onSelect(e):

      itm = tree.set(tree.focus())

      print(itm)

      pass

      main = Tk()

      data = [(1, “小明”, 23, ‘男’, ‘2021-09-21’), (2, “小强”, 23, ‘男’, ‘2021-09-21’),

      (3, “小红”, 23, ‘女’, ‘2021-09-21’), (4, “铁头”, 23, ‘男’, ‘2021-09-21’)]

      tree = ttk.Treeview(main, columns=(‘id’, ‘name’, ‘age’, ‘sex’,

      ‘birth’), show=“headings”, displaycolumns=“#all”)

      tree.heading(‘id’, text=“编号”, anchor=W)

      tree.heading(‘name’, text=“姓名”, anchor=W)

      tree.heading(‘age’, text=“年龄”, anchor=W)

      tree.heading(‘sex’,text=“性别”,anchor=W)

      tree.heading(‘birth’, text=“出生日期”, anchor=W)

      for itm in data:

      tree.insert(“”,END,values=itm)

      tree.pack(expand=1, fill=BOTH)

      tree.bind(“”,onSelect)

      main.mainloop()

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第4张

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第5张

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第6张

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第7张

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第8张

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第9张

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第10张

      最后

      本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等

      CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第11张

      前端视频资料:

      《tkinter实用教程21》treeview 节点插入、单选,面试官问的那些前端原理你都懂吗 第12张

      一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

      AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

      外链图片转存中…(img-k6NsmhOY-1712206382209)]

      前端视频资料:

      [外链图片转存中…(img-UVMoj8e5-1712206382210)]

      一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

      AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]