【qt】QTreeWidget 树形组件1

简介: 【qt】QTreeWidget 树形组件

一.什么是树形组件

树形组件,我们可以想象一下我们的文件或者qt左侧的项目。

对对对,就类似于这样!

还是老样子,我们跟着项目来

上图:

来吧,开干!

二.界面设计树形组件

可以双击直接添加树形内容:

还可以添加子目录

三.代码实现

1.清空

先将刚刚我们界面添加的清除干净。

ui->treeWidget->clear();

2.设置列数

设置目录有几列

ui->treeWidget->setColumnCount(2);

3.设置头标签

ui->treeWidget->setHeaderLabels(QStringList("科目","描述"));

运行结果:

4.添加根目录

①QTreeWidgetitem

注意初始化就是treeWidget

QTreeWidgetItem * root1=new QTreeWidgetItem(ui->treeWidget);

②设置文本

root1->setText(0,"c语言");    
 root1->setText(1,"开发基础");

运行结果:

③设置图标

需要素材的可以dd我

    QIcon icon;
    icon.addFile(":/image/file.png");
    root1->setIcon(0,icon);

运行结果:

④添加为顶层目录

添加为顶层目录,也就是添加成根目录

ui->treeWidget->addTopLevelItem(root1);

5.添加子目录

①初始化为父目录

这里的root1就是我们刚刚添加的根目录

QTreeWidgetItem* item=new QTreeWidgetItem(root1);

②子目录添加到父目录

QStringList list={"指针","程序控制","数据结构","结构体","文件操作"};
    for(int i=0;i<list.count();i++)
    {
        QTreeWidgetItem* item=new QTreeWidgetItem(root1);
        item->setText(0,list[i]);
        item->setText(1,"熟练掌握");
        root1->addChild(item);
    }

现在的运行结果:

③获取到子目录

要是我们还想要在文件操作的目录下再添加目录可以先获取到文件操作的目录项,再下一层初始化为它。

 auto child=root1->child(4);
    QStringList list2={"读文件","写文件","查找文件","删除文件"};
    for(int i=0;i<list2.count();i++)
    {
        QTreeWidgetItem*item=new QTreeWidgetItem(child);
        item->setText(0,list2[i]);
        item->setText(1,"必须掌握");
        root1->addChild(child);
    }

运行结果:

我们还可以再添加一个c++的根目录

QTreeWidgetItem * root2=new QTreeWidgetItem(ui->treeWidget);
    root2->setText(0,"c++");
    root2->setText(1,"开发高级");

    icon.addFile(":/image/file.png");
    root2->setIcon(0,icon);

    ui->treeWidget->addTopLevelItem(root2);


    QStringList list3={"类和对象","继承和派生","运算符重载","虚函数","模板"};
    for(int i=0;i<list3.count();i++)
    {
        QTreeWidgetItem* item=new QTreeWidgetItem(root2);
        item->setText(0,list3[i]);
        item->setText(1,"熟练掌握");
        root2->addChild(item);
    }

运行结果:

【qt】QTreeWidget 树形组件2:https://developer.aliyun.com/article/1523053

相关文章
|
26天前
【qt】QTableWidget 表格组件3
【qt】QTableWidget 表格组件
18 0
|
26天前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
23 0
|
26天前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
14 0
|
26天前
|
索引 Windows
【qt】QTreeWidget 树形组件2
【qt】QTreeWidget 树形组件
19 0
|
1月前
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
43 0
|
5天前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
|
5天前
|
SQL 关系型数据库 MySQL
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
数据库大作业——基于qt开发的图书管理系统(三)Qt连接Mysql数据库
|
5天前
|
SQL 数据可视化 关系型数据库
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计
|
5天前
|
安全 BI 数据库
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
数据库大作业——基于qt开发的图书管理系统 (一)环境的配置与项目需求的分析
|
1月前
|
区块链
【qt】最快的开发界面效率——混合编程3
【qt】最快的开发界面效率——混合编程
41 1