当前位置: 首页 > article >正文

QTreeWidget使用记录(1)

目的:使用QTreeWidget来浏览硬盘目录的文件结构。

功能要求:

1.选择某一磁盘根目录后,显示根目录下的文件和文件夹,且显示对应的图标;

2.单击列表项的箭头区域展开和折叠,展开时加载下一层级的文件和文件夹;

3.单击列表项的图标或者文本区域为选中状态;

4.样式设置,包括边框,表头视图、底色、选中、鼠标Hover,滚动条的样式。

实现方案:

1.选择某一磁盘根目录后,显示根目录下的文件和文件夹,且显示对应的图标;

默认仅显示当前层的文件和文件夹,根据当前层的父目录来搜索即可。代码如下:

    QDir rootDir(path);
    QFileInfoList fileInfoList = rootDir.entryInfoList();
    QFileIconProvider iconProvider;

    for (QFileInfo fileInfo : fileInfoList) {
        if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
            continue;
        QTreeWidgetItem* item = new QTreeWidgetItem();  
        
        QString filepath = fileInfo.path();
        QString filename = fileInfo.fileName();
        item->setText(0, filename);
        item->setIcon(0, QIcon(iconProvider.icon(fileInfo)));
        item->setData(0, Qt::UserRole, filepath);
        item->setData(0, Qt::UserRole + 1, false);   
        ui.m_treeWidget->addTopLevelItem(item);   
        item->setExpanded(false);
    }

其中设置了Item的文本、ICON和数据,数据的类型定义为用户自定义,使用QFileIconProvider获取到文件或者文件夹的图标。


http://www.kler.cn/a/372181.html

相关文章:

  • Day1 苍穹外卖前端 Vue基础、Vue基本使用方式、Vue-router、Vuex、TypeScript
  • MyBatis 中常用标签
  • 详细ECharts图例3添加鼠标单击事件的柱状图
  • vsCode怎么使用vue指令快捷生成代码
  • Docker Compose 安装 Harbor
  • VLM--CLIP作分类任务的损失函数
  • 使用linux+nginx 作为unity webgl的服务器
  • 告别资源荒!哎哟喂啊盘搜及其他良心网盘搜索引擎推荐
  • HTML--浮动布局练习
  • unity3d——单例模式,加载单例模式类问题
  • 力姆泰克伺服电动缸的优势有哪些
  • ML2021Spring-hw1(COVID-19 Cases Prediction)
  • 百度SEO分析实用指南 提升网站搜索排名的有效策略
  • unity游戏开发之赛车游戏
  • WEBRTC教程:局域网怎么调试,http://172.19.18.101:8080 ,无法访问摄像头和麦克风,请检查权限
  • 【数据库知识】oracle进阶-逻辑结构深入理解
  • 「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理
  • QT中采用QCustomPlot 实现将buffer中的数据绘制成折线图,并且图形随着数据更新而更新
  • [LeetCode-455]基于贪心算法的分发饼干问题的求解(C语言版)
  • Jenkins 发布 Java 项目:高效持续集成与部署
  • 2024年优秀的天气预测API
  • 微短剧小程序搭建:探索数字叙事新领域
  • 倒计时demo
  • EXPLAIN 针对性优化 SQL 查询
  • 【TS】TypeScript 类型定义之联合类型(union types)和交叉类型(intersection types)
  • Git_码云