一、创建QTreeWidget对象,设置大小,在窗口的位置
//创建QTreeWidget对象
QTreeWidget *treeWidget = new QTreeWidget(this);
treeWidget->resize(400, 300); // 设置控件大小为400x300
treeWidget->move(100, 100); // 设置控件在窗口中的位置为(100, 100)
treeWidget->setColumnCount(1); // 设置列数为1
treeWidget->setHeaderLabels(QStringList() << "联系人:"); // 设置列标题
二、添加节点项
//添加节点项
QTreeWidgetItem *family = new QTreeWidgetItem(treeWidget, QStringList() << "家人"); //另一种写法QStringList(QString("朋友"))
QTreeWidgetItem *family_child1 = new QTreeWidgetItem(family, QStringList() << "爸爸"); //根节点下面加孩子
QTreeWidgetItem *family_child2 = new QTreeWidgetItem(family, QStringList() << "妈妈"); //根节点下面加孩子
QTreeWidgetItem *family_child3 = new QTreeWidgetItem(family, QStringList() << "外婆"); //根节点下面加孩子
treeWidget->addTopLevelItem(family);
//root->addChild(child);
QTreeWidgetItem *schoolmates = new QTreeWidgetItem(treeWidget, QStringList() << "同学"); //另一种写法QStringList(QString("朋友"))
QTreeWidgetItem *schoolmates_child1 = new QTreeWidgetItem(schoolmates, QStringList() << "蒋易洲"); //根节点下面加孩子
QTreeWidgetItem *schoolmates_child2 = new QTreeWidgetItem(schoolmates, QStringList() << "廖嘉晶"); //根节点下面加孩子
QTreeWidgetItem *schoolmates_child3 = new QTreeWidgetItem(schoolmates, QStringList() << "周颖芝"); //根节点下面加孩子
treeWidget->addTopLevelItem(schoolmates);
三、读取节点(未加入功能中)
// QTreeWidgetItem *root1 = treeWidget->topLevelItem(0);
// QTreeWidgetItem *child1 = root->child(0);
四、节点展开与折叠
节点默认关闭:
treeWidget->expandItem(family); //运行后,打开family节点
treeWidget->collapseItem(schoolmates); //关闭schoolmates节点
五、添加复选框
family_child1->setCheckState(0, Qt::Unchecked);
family_child2->setCheckState(0, Qt::Unchecked);
family_child3->setCheckState(0, Qt::Unchecked);
schoolmates_child1->setCheckState(0, Qt::Unchecked);
schoolmates_child2->setCheckState(0, Qt::Unchecked);
schoolmates_child3->setCheckState(0, Qt::Unchecked);
【完整代码】
#include "widget.h"
#include "ui_widget.h"
#include <QTreeWidget>
#include <QDebug>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//创建QTreeWidget对象
QTreeWidget *treeWidget = new QTreeWidget(this);
treeWidget->resize(400, 300); // 设置控件大小为400x300
treeWidget->move(100, 100); // 设置控件在窗口中的位置为(100, 100)
treeWidget->setColumnCount(1); // 设置列数为1
treeWidget->setHeaderLabels(QStringList() << "联系人:"); // 设置列标题
//添加节点项
QTreeWidgetItem *family = new QTreeWidgetItem(treeWidget, QStringList() << "家人"); //另一种写法QStringList(QString("朋友"))
QTreeWidgetItem *family_child1 = new QTreeWidgetItem(family, QStringList() << "爸爸"); //根节点下面加孩子
QTreeWidgetItem *family_child2 = new QTreeWidgetItem(family, QStringList() << "妈妈"); //根节点下面加孩子
QTreeWidgetItem *family_child3 = new QTreeWidgetItem(family, QStringList() << "外婆"); //根节点下面加孩子
treeWidget->addTopLevelItem(family);
//root->addChild(child);
QTreeWidgetItem *schoolmates = new QTreeWidgetItem(treeWidget, QStringList() << "同学"); //另一种写法QStringList(QString("朋友"))
QTreeWidgetItem *schoolmates_child1 = new QTreeWidgetItem(schoolmates, QStringList() << "蒋*洲"); //根节点下面加孩子
QTreeWidgetItem *schoolmates_child2 = new QTreeWidgetItem(schoolmates, QStringList() << "廖*晶"); //根节点下面加孩子
QTreeWidgetItem *schoolmates_child3 = new QTreeWidgetItem(schoolmates, QStringList() << "周*芝"); //根节点下面加孩子
treeWidget->addTopLevelItem(schoolmates);
//读取节点
// QTreeWidgetItem *root1 = treeWidget->topLevelItem(0);
// QTreeWidgetItem *child1 = root->child(0);
//节点展开与折叠,节点默认关闭
treeWidget->expandItem(family); //运行后,打开family节点
treeWidget->collapseItem(schoolmates); //关闭schoolmates节点
//添加复选框
family_child1->setCheckState(0, Qt::Unchecked);
family_child2->setCheckState(0, Qt::Unchecked);
family_child3->setCheckState(0, Qt::Unchecked);
schoolmates_child1->setCheckState(0, Qt::Unchecked);
schoolmates_child2->setCheckState(0, Qt::Unchecked);
schoolmates_child3->setCheckState(0, Qt::Unchecked);
}
Widget::~Widget()
{
delete ui;
}