【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

相关文章
|
30天前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
71 2
|
1月前
|
编解码 开发框架
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
133 3
|
3月前
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
|
4月前
【qt】QTableWidget 表格组件3
【qt】QTableWidget 表格组件
38 0
|
4月前
【qt】QTableWidget 表格组件2
【qt】QTableWidget 表格组件
50 0
|
4月前
【qt】QTableWidget 表格组件1
【qt】QTableWidget 表格组件
39 0
|
4月前
|
索引 Windows
【qt】QTreeWidget 树形组件2
【qt】QTreeWidget 树形组件
39 0
|
2月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
144 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
1月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
47 0
|
25天前