Python GUI tkinter ttk TreeView 详解

Treeview

这个部件功能非常强大。
首先它是树形图和列表相结合,在第一列是它的树状结构,后面几列的是列表结构;然后每行是一个item,树这边的item可以分级,每个item可以有子item,名称对应text标签,而列表这边的item关联到对应的树item,名称对应的是values标签,values是一个列表结构;item:item就是一行数据,一个item有5个标签吧,分别是text,image,values,open,tags,其实一个item就类似于字典结构;列标识符说一下,这个可以在声明Treeview时由columns定义好,可以是整形,字符,字符串等,也可以是整数,注意开始是0,代表第一列,还可以是‘#n’,就是整数前加个#。

options

声明这个部件有以下几个可选属性

选项描述
columns值是一个列表。列表里每个元素代表一个列标识符的名称。列表的长度为列的长度。
displaycolumns列表,这里的元素是列表符,表示的是哪些列可以显示以及顺序,或者用‘#all’表示全部显示
height表示要显示几行数据(注意:这个部件的宽度是根据列的多少自动定义的)
padding填充,是个最多4个元素的列表
selectmode定义如何去选择一行。"extended"是可选多行(用Ctrl+鼠标), “browse” 是只能选一行, “none"是不能改变选择,默认是"extended”
show表示这个部件显示哪种功能,“tree”表示仅显示第一列(单树模式),“headings”表示显示除一列的其他列(单列表模式),默认是"tree headings",显示所有列。注意,‘#0’(第一列)是永远存在的

Item Options

每行的数据有以下几个可选属性

选项描述
text树状结构这边的名称。
image树状结构这边的名称的左边加个图。
values列表结构这边每一行的值,values未赋值的列会为空值,超过列的长度会被截断。
open布尔值,代表子item的显示打开或关闭
tags与item关联的标记

Tag Options

item里的tags对应的可选属性

选项描述
foreground前景色
background背景色
font字体
image

Virtual Events

bind里的可选事件
(由于转义问题直接用文字描述,<<里无空格>>)

<< TreeviewSelect>>,代表选择变化是发生;
<< TreeviewOpen>>,item的open=True时发生
<< TreeviewClose>>,item的open=False时发生

提示:可用 Treeview.focus() 和 Treeview.selection() 可获取 item 或 items.

方法

  • bbox(item, column=None)

返回一个item的范围(x,y,width, height),如果column指定了一个列,则返回一个元素范围,如果item不可视,则返回空值。

  • get_children(item=None)

返回一个item的所有子item,这个子item是一个列表形式,如果item没指定,则返回根目录的item

  • set_children(item, *newchildren)

设置一个item的新子item。这里设置了之后实际是全部替换

  • column(column, option=None, **kw)

给各列设置属性,或返回属性。
第一个column是列标识符
第二个option,如果不设置则返回所有属性的字典,如果设置则返回那个属性的值。
kw里的option有5个
id:只读属性,返回列名。
anchor:文字在cell里的对齐方式,标准的tk的anchor属性
minwidth: 值,单位是像素,列的最小宽度
stretch: 布尔值,表示列的宽度是否随整个部件的改动而变化。
width:列宽,单位是像素。
提示:如果要设置树状结构那列,用column=“#0”

  • delete(*items)

删除item及其子item

  • detach(*items)

断开item及其子item,这里的断开只是不显示,以后还可以链接起来。

  • exists(item)

返回True,如果item在树里。

  • focus(item=None)

如果不指定item,则返回当前获得焦点的item,如果指定item,则让该item获得焦点。若无则返回空值。

  • heading(column, option=None, **kw)

查询或修改指定列的标题选项
第一个column是列标识符
第二个option,如果不设置则返回所有属性的字典,如果设置则返回那个属性的值。
kw里的option有4个
text:列头名
image: 列头名右的图像
anchor:文字在heading里的对齐方式,标准的tk的anchor属性
command:点击列头的回调函数

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

创建新item并返回新创建item的项标识符。
parent:用item ID表示父item,或者‘’表示根item
index:数值int,或‘end’,表示item插入的位置
iid:item标识符,可自动生成
kw:看上面的Item Options介绍。

  • item(item, option=None, **kw)

查询或修改指定item的选项

  • selection(selop=None, items=None)

如果没指定selop则返回所有选中的items,列表形式,若selop指定了selection methods,则相应act。

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

指定item,如果不设定column和value,则返回他们的字典,如果设定了column,则返回该column的value,如果value也设定了,则作相应更改。

最后写几句

其他还有一些不常用的方法就没写了。还有一点就是绑定Scrollbar时,Scrollbar的放置用pack最好,用grid的话横向的Scrollbar会在初始的时候不能拖动(显示不全时)。

### 回答1: Python GUI Tkinter项目是使用Python编程语言和Tkinter库创建的图形用户界面项目。它可以用于创建各种桌面应用程序,如文本编辑器、计算器、游戏等。TkinterPython标准库中的一个GUI工具包,它提供了创建窗口、按钮、标签、文本框等常见GUI组件的方法。使用Tkinter可以快速创建简单的GUI应用程序,也可以通过自定义组件和布局来创建更复杂的应用程序。 ### 回答2: Python GUI是一种图形用户界面,通常用于创建图形、图表、工具栏等。Tkinter是一个流行的Python库,专门用于创建图形用户界面的Python GUI。 使用Tkinter创建Python GUI的项目需要灵活性和创新性。创建Tkinter项目的第一步是定义窗口的类型和大小。通过设置窗口的类型,可以指定它是一个对话框、标题窗口、弹出窗口或模式窗口,也可以指定窗口的大小、颜色和其他窗口属性。 接下来,您需要选择和添加控件,例如按钮、标签、文本框、下拉列表框和单选按钮。将这些控件添加到窗口后,可以像设置窗口属性一样设置它们的属性。 控件之间的交互和数据传输是Tkinter项目的重点。通过将控件与函数连接起来,可以实现按钮点击、文本框输入、下拉列表框选择等操作。对于复杂的应用程序,可以使用导航窗格、切换窗口和其他控件来组织布局,使其易于导航和使用。 为了使应用程序更加交互和响应性,可以添加功能、插件和内置任务,例如数据存储、数据处理、输入验证和结果导出。通过这些拓展,创建的Tkinter项目可以具有更广泛的应用范围。 总的来说,Tkinter非常适合创建Python GUI项目,因为它易于使用,具有良好的支持和资源,并且可以与其他Python库和框架集成。谁都可以使用Tkinter开发掌握一项技能,进行窗体界面开发。 ### 回答3: Python GUI tkinter项目是一种基于python的图形用户界面(GUI)工具集,可以帮助开发者构建具有互动性和可视化效果的应用程序。该工具集提供了各种控件来创建各种强大的GUI应用程序,比如按钮、标签、文本框、下拉列表和复选框等。 该工具集既简单易用,又灵活性高,适合于开发各种类型的应用程序,比如文本编辑器、数据库管理器、计算器等。此外,它还支持多种操作系统(如Windows,iOS,Linux)和编程语言(如C,C++,Java),因此可以轻松地在不同平台上使用。 Python GUI tkinter项目有几个主要的特点,包括: 1. 简单易用:Python GUI tkinter项目提供了各种易于使用的控件和工具,帮助开发者很容易地构建图形界面,省去了复杂的GUI编程过程。 2. 相对灵活性高:Python GUI tkinter项目非常灵活,提供了丰富的选项和配置来满足不同需求。开发者可以使用各种控件、布局、颜色等构建独特的应用程序。 3. 可移植性强: 由于Python GUI tkinter项目可以在多个操作系统和编程语言中使用,因此可以很方便地移植到不同的平台并在不同的环境下使用。 Python GUI tkinter项目的主要优势在于其易用性和灵活性。虽然它可能不如其他图形用户界面工具集(如QT或wxWidgets)功能丰富,但它是一个强大而又简单的工具,适用于各种应用程序的开发。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值