当前位置: 首页 > news >正文

qt QTreeWidget详解

1、概述

QTreeWidget 是 Qt 框架中的一个类,用于以树形结构展示数据。它基于 QTreeView 并提供了更高级别的接口,使得添加、删除和管理树形结构中的项变得更加简单。QTreeWidget 支持多级嵌套,每个项(QTreeWidgetItem)都可以有子项,从而形成复杂的树状结构。QTreeWidget 还提供了丰富的功能,如拖放操作、项的选择、编辑和展开/折叠等。

2、重要方法

QTreeWidget 提供了一系列方法来管理和操作树形结构中的数据,以下是一些重要的方法:

  • addTopLevelItem:向树中添加顶级项。
  • insertTopLevelItem:在指定位置插入顶级项。
  • addChildItem 和 insertChildItem:向现有项添加或插入子项。
  • takeTopLevelItem 和 takeChildItem:移除顶级项或子项。
  • clear:清除树中的所有项。
  • expandAll 和 collapseAll:展开或折叠树中的所有项。
  • expandItem 和 collapseItem:展开或折叠指定的项。
  • setItemText:设置项的文本。
  • setItemIcon:设置项的图标。
  • setItemData 和 itemData:设置和获取项的自定义数据。
  • sortItems:对项进行排序。
3、重要信号

QTreeWidget 发射多种信号来响应用户的操作和数据的变更,以下是一些重要的信号:

  • itemClicked:单击某个项时发射此信号。
  • itemDoubleClicked:双击某个项时发射此信号。
  • itemPressed:按下鼠标按钮在某个项上时发射此信号。
  • itemReleased:释放鼠标按钮在某个项上时发射此信号。
  • itemChanged:项的某些属性(如文本或图标)发生变化时发射此信号。
  • itemExpanded 和 itemCollapsed:当项被展开或折叠时发射这些信号。
  • itemSelectionChanged:选择发生变化时发射此信号。
  • currentItemChanged:当前项发生变化时发射此信号。
#include <QApplication>  
#include <QTreeWidget>  
#include <QTreeWidgetItem>  
#include <QDebug>  int main(int argc, char *argv[]) {  QApplication app(argc, argv);  // 创建一个 QTreeWidget 实例  QTreeWidget treeWidget;  treeWidget.setColumnCount(1); // 设置列数  treeWidget.setHeaderLabel("Tree Items"); // 设置表头标签  // 创建顶级项  QTreeWidgetItem *rootItem1 = new QTreeWidgetItem(&treeWidget);  rootItem1->setText(0, "Root Item 1");  // 创建子项  QTreeWidgetItem *childItem1 = new QTreeWidgetItem(rootItem1);  childItem1->setText(0, "Child Item 1.1");  QTreeWidgetItem *childItem2 = new QTreeWidgetItem(rootItem1);  childItem2->setText(0, "Child Item 1.2");  // 创建另一个顶级项及其子项  QTreeWidgetItem *rootItem2 = new QTreeWidgetItem(&treeWidget);  rootItem2->setText(0, "Root Item 2");  QTreeWidgetItem *childItem3 = new QTreeWidgetItem(rootItem2);  childItem3->setText(0, "Child Item 2.1");  // 展开所有项  treeWidget.expandAll();  // 连接 itemClicked 信号到槽函数  QObject::connect(&treeWidget, &QTreeWidget::itemClicked, [&](QTreeWidgetItem *item, int column) {  qDebug() << "Clicked item:" << item->text(column);  });  // 显示 QTreeWidget  treeWidget.show();  return app.exec();  
}

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/481750.html

相关文章:

  • 注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型
  • [java][jdk]JDK各个版本的核心特性
  • 双十一”买买买!法官告诉你注意这些法律问题
  • PyQt5
  • 【Linux】常用命令(2.6万字汇总)
  • Vue3-06_路由
  • 物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?
  • 量化分析工具日常操作日记-5-通合科技
  • windows和linux验证MD5码方式
  • 构造函数原型对象语法、原型链、原型对象
  • 鸿蒙UI开发——自定义UI绘制帧率
  • 鸿蒙基本组件结构
  • 柔性鞋材振动刀智能视觉裁切机市场报告:未来几年年复合增长率CAGR为5.4%
  • 【计算机网络】基础知识,常识应用知识
  • 【Linux进程篇1】认识冯·诺依曼体系结构(引出进程详解)
  • 使用iviewui组件库的坑
  • 高级sql使用技巧
  • 403 Request Entity Too Lager(请求体太大啦)
  • Flutter 正在切换成 Monorepo 和支持 workspaces
  • 小白初入Android_studio所遇到的坑以及怎么解决
  • NetCore使用Aop和内存缓存对接口、方法进行数据缓存
  • playwright学习记录2--定位方式
  • 响应式网页设计--html
  • C#核心(8) 静态成员
  • 关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
  • Axios 的 responseType 属性详解及 Blob 与 ArrayBuffer 解析
  • redis集群介绍
  • JDK中常用的包有哪些?
  • 校园官网练习---web
  • MySQL中指定字段的某个值排在前面