表格与树——QTreeView
QTreeWidget
顾名思义,这是用来展示树型结构(也就是层次结构)的。
Qt中实现树形结构可以使用QTreeWidget
类,也可以使QTreeView
类。QTreeWidget
继承自QTreeView
类。这个类需要同另外一个辅助类QTreeWidgetItem
一同使用。
不过,既然是提供方面的封装类,即便是看上去很复杂的树,在使用这个类的时候也是显得比较简单的。
当不需要使用复杂的QTreeView
的特性的时候,我们可以直接使用QTreeWidget
代替。
QTreeWidget类中常用的方法如下表所示:

QTreeWidgetItem类中的常用方法如下表:

1、树形结构的实现
树形结构时通过QTreeWidget和QTreeWidgetItem类实现的,其中QTreeWidgetItem类实现了节点的添加。

实例演示1:树形结构的实现
运行程序,显示效果如下;

1.1 设置节点状态
在上面显示的基础上,我们设置下节点的状态,也就是设计节点是否可被选中,可以使用QTreeWdigetItem的setCheckState()函数实现,添加代码如下:
显示效果如下:

1.2 设置节点的背景颜色
可以使用QBrush类来设置节点的背景颜色,例如设置根节点的背景颜色,代码如下:
显示效果如下:

2、给节点添加响应事件
下面演示当单击属性控件时,触发树形节点的响应事件。
实例演示2:添加响应事件
鼠标点击时,所在的行变成绿色,显示效果如下。

3、系统定制模式
在上面的例子中,QTreeWidgetItem类的节点是一个个添加的,这样做有时很不方便,特别是当窗口中产生比较复杂的树形结构时,一般都是通过QTreeView类来实现的,而不是QTreeWidget类。QTreeView类与 QTreeWidget类最大的区别就是,QTreeView类可以使用操作系统提供的定制模式,比如文件系统盘的树列表。
实例演示3:系统定制模式
运行代码,则显示出当前电脑磁盘信息,显示效果如下图所示。
