首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为QTreeView项目设置相对于其后缀的自定义图标

为QTreeView项目设置相对于其后缀的自定义图标,可以通过以下步骤实现:

  1. 首先,需要准备自定义图标资源文件。可以使用Qt的资源系统将图标文件添加到项目中,或者使用外部图标文件。
  2. 在代码中,需要使用QFileSystemModel或QStandardItemModel作为QTreeView的数据模型。这些模型类提供了设置图标的接口。
  3. 在设置图标之前,需要获取文件的后缀名。可以使用QFileInfo类来获取文件的后缀名。
  4. 通过后缀名来确定使用哪个自定义图标。可以使用QIcon类来加载自定义图标文件,并将其设置为QStandardItem或QModelIndex的图标。

下面是一个示例代码,演示如何为QTreeView项目设置相对于其后缀的自定义图标:

代码语言:txt
复制
#include <QApplication>
#include <QTreeView>
#include <QFileSystemModel>
#include <QFileInfo>
#include <QIcon>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 创建QTreeView和QFileSystemModel
    QTreeView treeView;
    QFileSystemModel model;
    model.setRootPath(QDir::currentPath());
    treeView.setModel(&model);

    // 获取文件后缀名并设置自定义图标
    for (int i = 1; i < model.columnCount(); ++i) {
        treeView.setColumnHidden(i, true);
    }

    for (int i = 0; i < model.rowCount(); ++i) {
        QModelIndex index = model.index(i, 0);
        QString filePath = model.filePath(index);
        QFileInfo fileInfo(filePath);
        QString suffix = fileInfo.suffix();

        // 根据后缀名设置自定义图标
        if (suffix == "txt") {
            QIcon icon(":/icons/txt_icon.png");
            model.setData(index, icon, Qt::DecorationRole);
        } else if (suffix == "doc" || suffix == "docx") {
            QIcon icon(":/icons/doc_icon.png");
            model.setData(index, icon, Qt::DecorationRole);
        } else {
            // 设置默认图标
            QIcon icon(":/icons/default_icon.png");
            model.setData(index, icon, Qt::DecorationRole);
        }
    }

    treeView.show();

    return a.exec();
}

在上述示例代码中,我们使用QFileSystemModel作为QTreeView的数据模型,并通过遍历文件来获取后缀名并设置相应的自定义图标。可以根据需要添加更多的后缀名和对应的自定义图标。

注意:示例代码中的图标路径是相对路径,需要根据实际情况修改为正确的图标文件路径。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理文件资源。可以将自定义图标文件上传到腾讯云对象存储,并在代码中使用相应的URL来加载图标。

腾讯云产品介绍链接地址:腾讯云对象存储(COS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQT 拖放事件(一)

许多PyQt窗口部件都支持拖放操作,QColumnView,QHeaderView, QListView, QTableView 和 QTreeView,我们要做只是打开支持模式使其工作即可。....setDragEnabled(True) #设置为可拖动 .setAcceptDrops(True) #设置为可放下,只有“放下”是从QWidget继承而来 这种方式拖放行为是复制,而不是移动。...如下程序有两个列表控件(QListView),左边列表控件使用默认模式,右边列表控件使用图标模式。项目(QListWidgetItem)可以在它们之间拖放复制。 ?...iconListWidget.setIconSize(QSize(100, 100)) #可设置图标大小 iconListWidget.setAcceptDrops(True...不过,如果需要使其能够处理自定义数据,或者,就必须重新实现一些事件处理程序。

1.9K30
  • Qt树形控件QTreeView使用1——节点添加删除操作

    目录: Qt树形控件QTreeView使用1——节点操作 Qt树形控件QTreeView使用2——复选框设置 QTreeView 和 QStandardItemModel使用 QtreeView...是ui中最常用控件,Qt中QTreeWidget比QTreeView更简单,但没有QTreeView那么灵活(QTreeWidget封装和MFCCTreeCtrl很类似,没有mvc特点)。...QStandardItemModel在QTreeView使用 使用QTreeView对应模型是 QStandardItemModel,这个是Qt对应ui界面最有用模型,它可以用于树形控件...appendRow //model->setItem(0,0,itemProject); //model->setItem(0,itemProject); 代码中 m_publicIconMap 是定义好图标在之前进行初始化...: 上段代码运行效果如图: 下面给这个项目条目下添加一个子项目

    6.1K30

    QTreeWidget 简介「建议收藏」

    () 返回所有选定非隐藏项目的列表内 QTreeWidgetItem类中常用方法 方法 描述 addChild() 将子项追加到子列表中 setText() 设置显示节点文本 Text() 返回显示节点文本...setCheckState(column.state) 设置指定列选中状态: Qt.Checked:节点选中 Qt.Unchecked:节点没有选中 setIcon(column,icon) 在指定列中显示图标...实例:树形结构实现 树形结构是通过QTreeWidget和QTreeWidgetItem类实现,其中QTreeWidgetItem类实现了节点添加,完整代码如下 import sys from...,这样有时很不方便,特别是窗口产生比较复杂树形结构时,一般都是通过QTreeView类来实现,而不是QTreeWidget类,QTreeView和QTreeWidget类最大区别就是,QTreeView...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.8K40

    PySide6 GUI 编程(50): 完结篇

    基础界面组件 QWidget、QPushButton 和 QLabel 是构建用户界面的基石,而高级界面组件 QListView、QTreeView 和 QTableView 支持更复杂数据展示和交互...QLabel 虽然通常用于显示文本,但也可以展示图像,适用于不需要复杂图像处理场景,如用户界面的图标或信息展示。...QIcon 则专门用于表示图标,能够包含多个尺寸图像,适合用于按钮、工具栏或其他界面元素图标展示,提供了优秀适应性和灵活性。...事件和绘图组件 QPainter 和 QMouseEvent 提供了处理用户输入和自定义界面元素能力,这对于创建动态和互动用户体验至关重要。...理解这些组件核心作用和使用限制是高效利用 PySide6 开发应用关键。每个组件都有特定使用注意事项,例如是否需要指定 parent,这对于资源管理和内存泄漏防范尤为重要。

    57832

    python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例

    insertTopLevelItems() 在视图顶层索引中引入项目的列表 expandAll() 展开所有节点树形节点 invisibleRootItem() 返回树形控件中不可见根选项(Root...Item) selectionItems() 返回所有选定非隐藏项目的列表内 QTreeWidgetItem类中常用方法 方法 描述 addChild() 将子项追加到子列表中 setText(...setIcon(column,icon) 在指定列中显示图标 QTreeWidget树形结构控件实例 树形结构是通过QTreeWidget和QTreeWidgetItem类实现,其中QTreeWidgetItem...类实现了节点添加,完整代码如下 import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import QIcon, QBrush, QColor...类,QTreeView和QTreeWidget类最大区别就是,QTreeView类可以使用操作系统提供定制模式,比如文件系统盘树列表 import sys from PyQt5.QtWidgets

    3.6K21

    C#——自定义控件工具箱图标

    在设计自定义控件时,系统默认生成图标比较单一难看,如何为控件设计自己图标呢,这里给出了一种基于ToolBoxBitmap 属性设置自定义控件工具箱图标的方法。...1)首先将图标文件名改为自定义控件名,自定义控件类为 public partial class UserDefindControl: UserControl { } 那么就要将图标图片文件更名为...UserDefindControl,UserDefindControl.bmp 2)然后将图标图片复制到程序根目录下,在解决方案管理器中在项目名称右键选择“添加”—>“添加现有项”,将图标图片加入到项目中...,对图片资源属性进行修改,将“生成操作”一栏该为“嵌入资源”。...")] 至此,控件自定义工具箱图标设置就完成了,编译程序,然后把控件拖到工具箱中试试吧!

    91731

    QTreeView+QAbstractItemModel自定义模型》:系列教程之三

    QAbstractItemModel:需要使用QTreeView显示数据时,并配合自定义model时,我们从此类继承。...2、QStandardItemModel使用 首先我们来看看如果用QStandardItemModel作为model时,我们代码: QTreeView* view = new QTreeView()...所以我们可以简单认为树,就是一行一行单元格组成表格,只不过在每一行通过首个单元格,建立了父子关系。...QTreeView显示树时,会自动调用TreeModel,来获取显示一个树所需要一些信息;我们重写这些函数目的就是为了向QTreeView提供这些信息。 接下来我们解释下重写各个函数作用。...model如何选择 在一个项目中开了很多线程,此时QTreeView+QStandardItemModel更新任务信息,在更新QTreeView中一行共7列数据,也就是7个单元格数据,居然花了40ms。

    5.7K10

    25.QT-模型视图

    模型视图设计模式核心思想 使模型(数据)与视图(显示)相分离 模型只需要对外提供标准接口存取数据,无需数据如何显示 视图只需要自定义数据显示方式,无需数据如何组织存储 当数据发生改变时,会通过信号通知视图...在Qt中,不管模型以什么结构组织数据,都必须为每个数据提供不同索引值,使得视图能通过索引值访问模型中具体数据 以QTreeView视图为例 QWidget w; QFileSystemModel...   7       设置模型数据文本对齐(Qt::AlignmentFlag) Qt::BackgroundRole      8        设置模型数据背景色(QBrush) Qt::ForegroundRole...model(&w); view.setModel(&model); //设置视图模型 QStandardItem itemA; /*设置text*/...itemA.setData("A",Qt::DisplayRole); /*设置图标*/ QPixmap pix(":user.png"); pix = pix.scaled

    1.5K20

    pyqt5 列表控件_树形控件

    目录 一.凡心所向,素履所往 二.树控件(QTreeWidget)基本用法 三.为树节点添加响应时间 四.增加,修改和删除树控件节点 五.QTreeView控件与系统定制模式 ---- 一.凡心所向,...其间也谈谈人生,聊聊感触,但是听他们说起来项目,实习,比赛,收入等等,感觉真的不是一个层次的人,哎,变强路上自闭真的是难免。 饭后也是九点多了吧,我就直接住在A家了。.../picture/bag/bag1.jpg')) #为节点设置图标 self.tree.setColumnWidth(0,200)#第一列列宽设为200 #添加子节点1...控件与系统定制模式 一般复杂树控件用QTreeView来写 代码: import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2K20

    Qt Designer基本控件介绍——Item Views(表项视图)和Item Widgets(部件)

    两者关系: Item Views(Model-Based)类内控件是Item Widgets(Item-Based)内对应控件父类, QTreeWidget是从QTreeView派生。...),操作方便,直接调用addItem即可添加项目(ICON,文字) 详细介绍可以看博客 “Qt入门-列表框QListWidget类” “Qt5.9中控件listWidget用法(QListWidget基本用法...)” “QListWidget 和 QListView区别” ---- Tree view :视图类,需要手动给他指定模型类,才能够显示数据,QTreeView要灵活些。...具有默认模型基于项目的表视图 QTableWidget继承自QTableView。...默认情况下,可见性设置为true bool resizeGripsVisible() const void setResizeGripsVisible(bool visible) Undo View

    6.3K00

    QTreeView使用总结13,自定义model示例,大大优化性能和内存

    2,参考资料 豆子《Qt学习之路2》中几篇关于自定义model文章: 自定义model之一: 自定义只读模型 自定义model之二: 自定义可编辑模型 自定义model之三: 布尔表达式树模型...因为技术都应用在我项目里,实际所用model实现了很多特殊功能,非常复杂,我要提炼出一个简单可读demo。...示例中只使用了10W行数据量级 运行程序你就会发现,常规model在初始化tree过程就比自定义model慢很多,更可怕是,它所占用内存开销是自定义model数倍甚至数十倍!...常用设置QTreeView* t = ui->treeView; // t->setEditTriggers(QTreeView::NoEditTriggers); //单元格不能编辑...因此,由于实际需要存储列数变少,内存占用又得到可观缩减。 不过这种好处只适用于多列数据有关联可推算情况。 我项目内存在大量此类数据,获得收益较大。 进一步了解可以阅读源码。

    2.2K30

    uni-app开发一个小视频应用(一)

    添加图标字体非常简单,就是登录iconfont网站,然后创建一个图标项目,然后搜索自己需要图标,比如加号、搜索、返回,将它们加入到项目中,然后点击下载即可,下载完成后解压,找到iconfont.css...这个文件,这个就是我们要用到图标字体css样式,直接引入到项目中即可,为了方便使用,我们将图标字体css文件作为一个全局样式引入到App.vue组件中。...使用时候,我们只需要在需要添加图标字体标签上,添加上"iconfont 具体图标样式名"即可,: // App.vue /*每个页面公共css */...为100%后,它并没有全屏显示,因为当样式属性值为百分数时候,相对于父元素,即是父元素宽高100%,而此时视频播放组件父元素是html、body,它们并没有设置宽高,所以我们需要在App.vue...中设置一下全局样式,将html和body宽高设置为100%,此后其中子元素设置百分数时候才会作用。

    3.9K71

    如何在webpack中设置favicon--webpack入门教程(四)

    本文主要想介绍前端webpack打包中,与favicon图标相关配置。包括在html-webpack-plugin中设置favicon,和自定义favicon打包路径两个方面。...考虑到一个实际项目场景:在一个前端项目发布上线后,如果想在线上环境直接替换favicon图标,比较方便一个方式是在webpack打包时候,就配置好favicon打包路径。...到线上环境只要直接去对应路径,找到对应favicon后替换即可。那么如何在webpack打包时,自定义地控制favicon打包路径呢?通过下面的项目实例可以快速了解一下。.../dist/favicon.ico"> 浏览器中已经可以看到favicon,此处用是腾讯云图标: 7.png 1.3 自定义favicon打包路径 上述打包favicon路径,是根据output...那么该如何直接指定favicon打包路径呢。 这里用了url-loader,通过test匹配到favicon.ico图标后,会根据设置name属性,将favicon打包到指定位置。

    9.5K451

    CSS美化超链接样式

    text-decoration: none; } 鼠标经过时显示下划线结果,加以下代码: a{ text-decoration:underline; } 样式效果: 三、定义样式特效 设计如何为超链接文本设计立体视觉效果...body{ background: #fcc; /*浅色页面背景*/ } ul{ list-style-type: none; /*清楚项目符号...move 十字箭头光标,用于标示对象可被移动 e-resize、ne-resize 、nw-resize 、 n-resize、se-resize、 sw-resize、 表示正在移动某个边,se...通常渲染为I形光标 text 表示程序正忙,需要用户等待,通常渲染为手表或沙漏 wait 光标下对象包含有帮助内容,通常渲染为一个问号或一个气球 help 自定义光标类型图标路径 ...URL 如果自定义光标样式,建议使用绝对或相对URL地址指定光标文件(后缀为.cur或者.ani) 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161735.html

    1.8K30

    PyQT模块、类、控件介绍

    QtBluetooth模块 包含了处理蓝牙活动类库,功能包括:扫描设备、连接、交互等行为。...QtXmlPatterns模块 所包含类实现了对XML和自定义数据模型Xquery与XPath支持。 QtDesigner模块 所包含类允许使用PyQt扩展Qt Designer。...QApplication类 用于管理图形用户界面应用程序控制流和主要设置。...QMainWindow类 提供一个有菜单栏、锚接窗口(工具栏)和状态栏主应用程序窗口。 QWidget类 所有用户界面对象基类。...,用于设置窗口图标 QFont:字体类,用于设置字体格式 QColor:颜色类,用于设置控件、画布等颜色 QBrush:笔刷类,用于绘制图形形状背景,矩形、椭圆或多边形。

    55831

    App环境分离实现:Android篇

    因此,可以设置多个不同applicationId,对应多个不同版本apk,而package则保持一致。新建项目默认applicationId和package是一样。...> 至此,当运行beta版Build Variant时,则会看到beta版应用图标和应用名称也与生产版不同了。...这里,因为production自定义applicationId和defaultConfigapplicationId是一样,所以其实也可以取消applicationId自定义。...在Build Types设置界面中,可以看到有个Application Id Suffix设置选择,这个可以用来设置applicationId后缀。...这个后缀相对于Flavors来说,比如我们定义了一个如下productFlavors: productFlavors { free { applicationId 'com.domain.productname.free

    92710
    领券