QTreeWidget 树控件
显示树形结构的控件一般为 QTreeWidget
,该控件会让各个条目以树形结构来显示。
如下图所示,为一个树形结构,Root 为根节点,一级子节点为 sheet1, sheet2,每个一级子节点下面又会有自己的子成员。
对应的代码为:
#include <QTreeWidget>
#include <QTreeWidgetItem>
// Tree控件用来承载整个TreeItem
QTreeWidget* tree = new QTreeWidget(ui.widget);
tree->setHeaderHidden(true); // 隐藏标头
// 0. 根节点
QTreeWidgetItem* itemRoot = new QTreeWidgetItem(tree);
itemRoot->setText(0, "Root");
itemRoot->setCheckState(0, Qt::Unchecked); // 控制每个item前面是否显示CheckBox
// 1-1. 一级节点
QTreeWidgetItem* sheet1 = new QTreeWidgetItem(itemRoot, 1);
sheet1->setText(0, "sheet1");
sheet1->setCheckState(0, Qt::Checked);
// 2-1. 二级节点
QTreeWidgetItem* var11 = new QTreeWidgetItem(sheet1, 2);
QTreeWidgetItem* var12 = new QTreeWidgetItem(sheet1, 2);
QTreeWidgetItem* var13 = new QTreeWidgetItem(sheet1, 2);
var11->setText(0, "x01");
var12->setText(0, "x02");
var13->setText(0, "x03");
var11->setCheckState(0, Qt::Checked);
var12->setCheckState(0, Qt::Checked);
var13->setCheckState(0, Qt::Checked);
// 1-2. 一级节点
QTreeWidgetItem* sheet2 = new QTreeWidgetItem(itemRoot, 1);
sheet2->setText(0, "sheet2");
sheet2->setCheckState(0, Qt::Checked);
// 2-2. 二级节点
QTreeWidgetItem* var21 = new QTreeWidgetItem(sheet2, 2);
QTreeWidgetItem* var22 = new QTreeWidgetItem(sheet2, 2);
var21->setText(0, "Y01");
var22->setText(0, "Y02");
var21->setCheckState(0, Qt::Unchecked);
var22->setCheckState(0, Qt::Unchecked);
tree->expandAll();
int cnt = tree->topLevelItemCount();
主要的API整理:
QTreeWidget
类
Function:
addTopLevelItem(QTreeWidgetItem *item)
:用来添加根节点,即上图的 Root,每个层次的节点个数不限。setHeaderLabel(const QString &label)
:QTreeWidget的标题,一般会将其进行隐藏setHeaderHidden(bool )
:隐藏树结构的标题topLevelItemCount() const
:当前树结构有多少个根节点,不包含根节点的子节点。expandAll()
:所有项都展开。
Signal
itemClicked(QTreeWidgetItem *item, int column)
:常用的点击每个条目会触发对应的信号
QTreeWidgetItem
类表示每个节点条目
childCount() const
:每个item的子成员个数checkState(int column) const
:只要调用该函数,不管设置什么状态,该item前就会出现CheckBox选项。addChild(QTreeWidgetItem *child)
:为当前item添加子成员setText(int column, const QString &text)
:设置item显示的内容type() const
:是int类型,相当于标志位,在创建该对象的时候设置,用来区分具体点击的哪一个item,从而进行对应的处理。setIcon(int column, const QIcon &icon)
:设置当前 item 的icon。parent()
:为获取当前的item的parent,其返回值为 QTreeWidgetItem *treeWidget()
:返回包含当前 item 的 QTreeWidget *
item中的column一般都是0,因为基本只有一列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-10-26 cmd 中常用 Command 总结