Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

news/2024/10/17 22:28:02/

1 exe程序图标概述

在 Windows 操作系统中,程序图标一般会涉及三个地方;

(1) 可执行程序(以及对应的快捷方式)的图标

(2) 程序界面标题栏图标

(3)程序在任务栏中的图标

2 icon图标文件制作方法

参考:ICO图标在线转换_ICO图标制作工具_PNG在线转ICO - ICO吧

3 QT QIcon图标设置方法

(1)方法一

【1】在.pro中添加:

RC_ICONS = favicon.ico #facicon.ico为图标文件名

【2】代码中设置

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{this->setWindowTitle("ICON SET");QWidget* w=new QWidget;setCentralWidget(w);setWindowIcon(QIcon("favicon.ico"));//或者 setWindowIcon(QIcon(":/favicon.ico"));
}

【3】图标文件放置.pro同级目录 ;也可以根据需要放置其它地方,调整调用路径

 【4】qmake->构建->运行结果

(2)方法二

【1】通过 Qt Creator 为项目创建一个新的资源文件,如下图所示:

【2】 右键点击创建好的资源文件,选择“Open in Editor”;

 选择添加前缀

添加现有的图标文件 ,如下图标文件名称为“favicon.ico”,如下表明该文件位于.pro项目同级目录下;

【3】 代码中设置

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{this->setWindowTitle("ICON SET");QWidget* w=new QWidget;setCentralWidget(w);setWindowIcon(QIcon(":/favicon.ico"));
}

  【4】qmake->构建->运行结果

4 菜单栏图标设置

    QMenuBar *menuBar = this->menuBar();  // 创建一个菜单栏QMenu *fileMenu = menuBar->addMenu("FILE"); // 创建一个菜单QAction *openAction = fileMenu->addAction("OPEN"); // 创建一个动作QIcon openIcon(":/open.png"); // 假设你有一个名为"open.png"的图标文件在资源文件中openAction->setIcon(openIcon);  // 设置图标

 

5 工具栏图标设置

    QToolButton *button = new QToolButton();button->setText("LOAD");QToolBar *toolBar = addToolBar("toolBar");toolBar->addWidget(button);QPixmap pixmap(":/load.png"); // 假设你有一个名为"load.png"的图标文件在资源文件中// QIcon barLoad(":/load.png");// 或者使用iconbutton->setIcon(pixmap);button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // 设置文字在图标下方,也可旁边//button->setIconSize(QSize(64, 64));

 5 状态栏图标设置

    QIcon iconOpenFile(":/open.png");  // 假设你有一个名为"open.png"的图标文件在资源文件中QStatusBar *sBar = statusBar();   //状态栏QLabel *iconLabel = new QLabel(this);iconLabel->setText("Normal text file");// 设置提示文本iconLabel->setPixmap(iconOpenFile.pixmap(QSize(32, 32)));//设置图标大小QLabel *textLabel = new QLabel(this);textLabel->setText("Normal text file");sBar->addWidget(iconLabel); // 添加图标到状态栏sBar->addWidget(textLabel);//文本添加状态栏sBar->addWidget(new QLabel("2", this));  //addWidget 从左往右添加sBar->addPermanentWidget(new QLabel("3", this));  // addPermanentWidget 从右往左添加


http://www.ppmy.cn/news/1401969.html

相关文章

[数据集][目标检测]公共场所危险物品检测数据集VOC+YOLO格式1431张6类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1431 标注数量(xml文件个数):1431 标注数量(txt文件个数):1431 标注…

FPGA亚稳态学习总结

首先是组合逻辑电路考虑的是竞争冒险,冒险会产生毛刺。重点研究如何去毛刺 时序逻辑电路考虑的是时序不满足会产生的亚稳态问题:如何考量时序满不满足呢?根据不同的场景又有不同的说法。 时序分析的两组基本概念 建立时间与保持时间 1.在…

深入PostgreSQL中的pg_global表空间

pg_global表空间的位置 在PG当中,一个实例(cluster)初始化完以后,你会看到有下边两个与表空间相关的目录生成: $PGDATA/base $PGDATA/global 我们再用元命令\db以及相关视图看看相应的表空间信息: postgres# \db …

【OceanBase实战之路】第3篇:多租户架构实现资源隔离

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 目录 一、什么是OceanBase的多租户二、兼容模式2.1 MySQL 模式2.2 Oracle 模式三、租户介绍3.1 系统租户3.2 用户租户3.3 Meta 租…

【Pandas】(5)eval和query

使用 eval() 进行高效计算 eval() 函数在 Pandas 中是一种高效率的字符串表达式求值器,允许对 DataFrame 进行快速计算。这个功能基于 Numexpr 库,能够加速某些特定类型的操作,尤其是在处理大型 DataFrame 时。 基本使用 eval() 允许你使用字符串表达式来执行算术运算、比…

【JSON2WEB】11 基于 Amis 角色功能权限设置页面

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

浏览器页面缓存机制

HTTP缓存机制的核心思想是,对于已经请求过的资源,如果其在服务器上没有发生变化,那么浏览器就可以直接从本地缓存中获取这些资源,而无需再次向服务器发送请求。 强缓存 就是确定可用的缓存 浏览器和和服务器对每个缓存资源先商量一…

Ubuntu下udp通信

一、知识准备阶段 socket是什么?套接字是什么? https://blog.csdn.net/m0_37925202/article/details/80286946 Socket程序从Windows移植到Linux下的一些注意事项 sockaddr和sockaddr_in详解 bzero和memset函数 函数原型:void bzero&…