百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

小白之Tkinter库读文:高级功能-Treeview 表格或树形结构(29)

yuyutoo 2025-05-26 19:56 9 浏览 0 评论

3.2 Treeview 表格或树形结构数据

说明

Treeview 是 Tkinter 中用于显示表格或树形结构数据的组件。它可以显示多列数据,并支持树形结构的展开和折叠。


创建

tree = ttk.Treeview(root)
  • 作用:创建一个表格或树形结构数据对象。
  • 参数
    • root:父容器(通常是根窗口或其他容器)。

常用方法

以下是 Treeview 的常用方法:

insert(parent, index, iid=None, **kw)

  • 说明:插入一行数据。
  • 参数
  • parent:父节点的 ID("" 表示根节点)。
  • index:插入位置(如 "end" 表示末尾)。
  • iid:行的唯一标识符(可选)。
  • **kw:其他选项,如 text(显示的文本)、values(列数据)等。
  • 示例
tree.insert("", "end", text="行1", values=("数据1", "数据2"))

delete(*items)

  • 说明:删除指定的行。
  • 参数
  • *items:要删除的行的 ID。
  • 示例
tree.delete("item1") # 删除 ID 为 "item1" 的行

heading(column, options)

  • 说明:配置列标题。
  • 参数
  • column:列标识符(如 "#1" 表示第一列)。
  • options:配置选项,如 text(标题文本)、command(点击标题时触发的函数)等。
  • 示例
tree.heading("#1", text="姓名")

column(column, options)

  • 说明:配置列的属性。
  • 参数
  • column:列标识符(如 "#1" 表示第一列)。
  • options:配置选项,如 width(列宽)、anchor(对齐方式)等。
  • 示例
tree.column("#1", width=100, anchor="center")

get_children(item=None)

  • 说明:获取指定节点的子节点。
  • 参数
  • item:节点的 ID(None 表示根节点)。
  • 返回值:子节点的 ID 列表。
  • 示例
children = tree.get_children("item1") # 获取 ID 为 "item1" 的节点的子节点

set(item, column=None, value=None)

  • 说明:设置指定单元格的值。
  • 参数
  • item:行的 ID。
  • column:列标识符(如 "#1" 表示第一列)。
  • value:要设置的值。
  • 示例
tree.set("item1", "#1", "新值")

item(item, options)

  • 说明:配置指定行的属性。
  • 参数
  • item:行的 ID。
  • options:配置选项,如 text(显示的文本)、values(列数据)等。
  • 示例
tree.item("item1", text="新文本")

示例演示

以下是一个完整的示例,展示如何使用 Treeview 创建和配置表格:

import tkinter as tk
from tkinter import ttk

# 创建根窗口
root = tk.Tk()
root.title("Treeview 示例")
root.geometry("400x300")

# 创建并配置 Treeview 组件
tree = ttk.Treeview(root, columns=("Name", "Age"), show="headings")
tree.heading("Name", text="姓名")
tree.heading("Age", text="年龄")
tree.column("Name", width=200, anchor="center")
tree.column("Age", width=100, anchor="center")
tree.pack(fill="both", expand=True, padx=10, pady=10)

# 插入数据
tree.insert("", "end", values=("张三", 25))
tree.insert("", "end", values=("李四", 30))
tree.insert("", "end", values=("王五", 28))

# 定义删除选中行的函数
def delete_selected():
    selected_items = tree.selection()
    for item in selected_items:
        tree.delete(item)

# 创建按钮,用于删除选中行
button = ttk.Button(root, text="删除选中行", command=delete_selected)
button.pack(pady=10)

# 启动主循环
root.mainloop()

代码说明

Treeview 组件

  • 包含两列(姓名和年龄)。
  • 使用 heading() 方法设置列标题。
  • 使用 column() 方法设置列宽和对齐方式。
  • 使用 insert() 方法插入三行数据。

按钮

  • 显示文本“删除选中行”。
  • 点击按钮时,调用 delete_selected() 函数,删除选中的行。

回调函数

  • 使用 selection() 方法获取选中的行的 ID。
  • 使用 delete() 方法删除选中的行。

运行效果



  1. 窗口大小为 400x300。
  2. Treeview 组件显示两列数据(姓名和年龄)。
  3. 点击“删除选中行”按钮时,删除选中的行。

注意事项

  • 使用 show="headings" 可以隐藏树形结构的图标。
  • 使用 selection() 方法可以获取选中的行的 ID。

通过这个示例,你可以掌握 Treeview 的基本用法,并根据需要配置表格或树形结构数据。

相关推荐

实现分页的最简单的方式(附带源码下载)

分页是每个网站并不可少的,但是处理往往非常麻烦,虽然有很多的插件可以使用,但复杂度依然不减,今天我们来手敲一个最简单的实现方式,看够之后分页再也不是难题,而且以后用插件也懂原理了。手动擒来!文章概略:...

什么是XSS攻击,我们又该如何防范?

什么是XSS?XSS,全称为CrossSiteScripting,意思是跨站脚本攻击,为了与层叠样式表(CSS:CascadingStyleSheets...

网站wn万能命令wn.run怎么用?

wn万能命令是一个在线工具快捷跳转平台,将各种高质量的在线工具按应用站点聚合起来,让你以方便快捷好记的方式寻找和使用网页型在线工具。...

游客在三清山景区坐椅子拍照被强制收费 官方通报:已责令摄影点立即整改

大皖新闻讯7月31日,大皖新闻报道了游客称三清山景区坐下椅子拍照就被强制收费一事,引发关注。31日下午,三清山景区管理局发布情况通报称,经调查核实,视频反映情况属实,已责令该摄影点立即整改。官方发布情...

使用JavaScript如何获取网站网址

在做网站开发时,我们有时候会获取当前页面的完整路径。在网页前端如何实现呢?请在网页脚本代码段中粘贴如下代码。functiongetRootPath(){//获取当前网址,...

重磅发布!时间终于确定

]|\[sS])*"|'(?:[^\']|\[sS])*'|[^)}]+)s*)/g,l=window.testenv_reshost||window.__moon_host||"res.wx.qq...

收到一个神奇的任务,聊天工具运行不正常,原来是浏览器的问题

如何神奇呢?先来简单介绍一下背景,接下来再说一下这个现象如何神奇。出问题的是一个即时聊天工具插件,被嵌入到客户的第三方程序中。工程师说,我们自己的例子程序是没问题的,而且也不是所有的客户端都有问题。他...

微服务架构实战:商城的用户登录与账户切换设计、订单查询设计

商城的用户登录与账号切换设计在移动商城的设计中,除商品和分类查询是完全开放权限的页面外,其他涉及个人隐私的个人信息、订单查询和购物车等都必须进行权限管理。有关用户权限管理的功能,在这里根据移动设备的特...

前端进阶-每日一练(4)

本期问题:document.write和innerHTML、innerText有什么区别?jQuery中如何中断each遍历?如何查找数组中的最小值和最大值?如何做到优雅降级,渐进增强?$....

js中的正则表达式入门

什么是正则表达式呢?...

前端路由简介以及vue-router实现原理

作者:muwoo来源:https://zhuanlan.zhihu.com/p/37730038...

详解三类的友情链接不能交换

“假PR页面导出链接太多专门的友情链接页无效链接内页的链接关联性网页快照更新的速度收录的数量nofollow生成静态伪装图片链接链接工厂下拉列表或滚动js脚本转向fram...

福建推进河(湖)长制工作:当好“施工队长”建设八闽幸福河湖

]|\[sS])*"|'(?:[^\']|\[sS])*'|[^)}]+)s*)/g,l=window.testenv_reshost||window.__moon_host||"res.wx.qq...

如何愉快地使用Via浏览器

...

将 Safari 打造成 iOS 里的快速启动中心:Bookmarklet

Safari作为iOS设备上我们使用最为频繁的App之一,它除了能让我们翱翔于无边的网际之外,其实利用它本身自带的书签功能我们还可以将其打造成一个快速启动中心。在桌面环境中大多数浏览器都允许...

取消回复欢迎 发表评论: