【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍

简介: 【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍

Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍

一、QTreeWidget介绍

1. 简介

QTreeWidget是Qt中的一个可视化控件,用于显示树形结构的数据。它是QTreeView的衍生类,提供了更直观易用的API来构建和管理树形结构。


QTreeWidget可用于显示和编辑树状结构的数据,每个节点可以包含一个或多个子节点。每个节点以一个图标和一个文本标签来标识,用户可以通过展开或折叠节点来显示或隐藏子节点。


2. 核心方法

image.png

3. 核心信号

image.png

二、QTreeWidgetItem介绍

1. 简介

QTreeWidgetItem是Qt框架中的一个类,用于在树形结构中表示节点。它可以用于创建树状的视图,比如树状菜单、文件浏览器等。


QTreeWidgetItem类提供了一些方法和属性,用于设置节点的文本、图标、状态等。每个节点都可以有子节点,通过添加子节点来构建树的层次结构。节点的层次关系可以通过父节点和子节点的指针来管理。


2. 核心属性

image.png

3. 核心方法

image.png

三、QTreeWidget的使用(代码示例)

  1. 在界面TreeView,和三个按钮,以及一个输入框,如下图所示
  2. 使用代码添加顶层元素
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //修改根节点名称
    ui->treeWidget->setHeaderLabel("饮品");

    //添加顶层元素
    QTreeWidgetItem * item = new QTreeWidgetItem();
    //设置顶层元素的名称
    item->setText(0,"碳酸饮料");
    //添加到顶层节点中
    ui->treeWidget->addTopLevelItem(item);

    //添加顶层元素
    QTreeWidgetItem * item2 = new QTreeWidgetItem();
    //设置顶层元素的名称
    item2->setText(0,"奶茶");
    //添加到顶层节点中
    ui->treeWidget->addTopLevelItem(item2);

    //添加顶层元素
    QTreeWidgetItem * item3 = new QTreeWidgetItem();
    //设置顶层元素的名称
    item3->setText(0,"果汁");
    //添加到顶层节点中
    ui->treeWidget->addTopLevelItem(item3);

    //添加子节点
    QTreeWidgetItem * item4 = new QTreeWidgetItem();
    //设置元素名称
    item4->setText(0,"百事可乐");
    //添加到顶层节点下
    item->addChild(item4);

    //添加子节点
    QTreeWidgetItem * item5 = new QTreeWidgetItem();
    //设置元素名称
    item5->setText(0,"雪碧");
    //添加到顶层节点下
    item->addChild(item5);
}

  1. 编写按钮生成的槽函数
//添加到顶层元素 按钮
void Widget::on_pushButton_insertTopLevelItem_clicked()
{
    //获取到LineEdit输入框中的内容
    const QString& text = ui->lineEdit->text();
    //新增顶层节点
    QTreeWidgetItem * item = new QTreeWidgetItem();
    //设置顶层元素名称
    item -> setText(0,text);
    //添加到顶层节点中
    ui->treeWidget->addTopLevelItem(item);
}

//添加到选中元素 按钮
void Widget::on_pushButton_insertItem_clicked()
{
    //获取到输入框内容
    const QString& text = ui->lineEdit->text();
    //获取当前选中的节点
    QTreeWidgetItem * current= ui->treeWidget->currentItem();
    if(current == nullptr)
    {
        return;
    }
    //新增节点
    QTreeWidgetItem * item = new QTreeWidgetItem();
    //设置元素名称
    item -> setText(0,text);
    //添加到节点中
    current->addChild(item);
}

//删除选中的元素 按钮
void Widget::on_pushButton_3_clicked()
{
    //获取当前选中的节点
    QTreeWidgetItem * current= ui->treeWidget->currentItem();
    if(current == nullptr){
        return;
    }
    //获取当前节点的父节点
    QTreeWidgetItem* parent = current->parent();
    if(parent ==nullptr){
        //顶层节点
        int index = ui->treeWidget->indexOfTopLevelItem(current);
        ui->treeWidget->takeTopLevelItem(index);
    }
    else{
        //非顶层节点
        parent->removeChild(current);
    }
}

4.运行结果,可以针对树形结构进行编辑添加内容和删除内容

目录
相关文章
|
6月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
1105 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
6月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
280 4
|
6月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
1125 4
|
6月前
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
555 4
|
6月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
290 4
|
6月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
462 3
|
6月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
172 3
|
6月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
868 3
|
6月前
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
217 3
|
6月前
【Qt 学习笔记】Qt窗口 | 浮动窗口 | QDockWidget的使用及说明
【Qt 学习笔记】Qt窗口 | 浮动窗口 | QDockWidget的使用及说明
606 3