Qt 学习第十二天:QTreeWidget 的使用

一、创建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;
}

【运行结果】

补充知识点:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值