1 QTreeWidget树类
QTreeWidget类可以呈现数组、数列等数据,并且可以进行交互,它使用标准的数据模型,其单元格数据通过QTableWidgetItem对象来实现。
QTreeWidget继承自QTreeView,是封装了默认Model的QTreeView,其中的元素属于QTreeWidgetItem类型,插入后就是树节点,delete方法可以删除节点。
QTreeWidget常用方法如下:
方法 | 描述 |
setColumn Width(列,宽度) | 设置指定列的宽度 |
insertTopLevelItems() | 在视图的顶层索引中插入项目列表 |
expandAll() | 展开所有树形节点 |
invisibleRootItem() | 返回树形控件中不可见的根选项(Root Item) |
selectedItems() | 返回所有选定的非隐藏项目的列表 |
QTreeWidgetItem类常用的方法如下:
方法 | 描述 |
addChild() | 将子项追加到子列表中 |
setText() | 设置显示的节点文本 |
Text() | 返回显示的节点文本 |
setCheckState(列,状态) | 设置指定列的选中状态(Qt.CheckState.X): Checked:节点选中 UnChecked:节点未选中 |
setIcon(列,图标) | 在指定的列中显示图标 |
2 树和节点
树形结构是通过QTreeWidget和QTreeWidgetItem类实现的,前者为树,后者为节点。QTreeWidget对象创建后是没有任何项的,首先要增加顶层项,方法有以下三种。
(1)在QTreeWidgetItem中构造方法时,直接将QTreeWidget对象作为参数传递进去。
(2)利用QTreeWidget的隐形根节点,调用QTreeWidgetItem相关方法增加子项即可。
(3)直接调用QTreeWidget相关方法。
追加顶层项:树对象创建以后,通过addTopLevelItem(QTreeWidgetItem item)方法在顶层项加入item项的顶层项,也可以通过addTopLevelItems(iter[QTreeWidgetItem] items)将一个迭代类型items中的多个项加入顶层项的最后。
如果要插入的项已经在树对象中,则该项不会重复加入,如果是多项中有部分项已经在树对象中,则重复项不会加入。
插入顶层项:通过insertTopLevelItem(int index, QTreeWidgetItem item)方法在树对象顶层项列表的index位置插入item对应项,该位置及其后的项目自动后移,也可以通过insertTopLevelItems(int index,(iter[QTreeWidget] items))将一个迭代类型items中多个项从index位置开始顺序插入,原位置的项自动后移。
3 案例
思路如下:
(1) 创建单行文本框、3个命令按钮、树及初始节点
(2)添加、删除和修改按钮关联对应其槽函数: