【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)

先准备图片资源

推荐一个好用的图标素材网站,有很多免费资源。

Ic, fluent, animal, dog, filled icon - Free download

其他辅助工具,类似 AI 抠图去背景,实测效果还行,但是非免费。

美图秀秀-在线一键抠图,无需PS和下载,3秒快速出图

在Qt Creator 左上角点击 File,选择 New File,找到新建资源文件 qrc

在这里插入图片描述

文件名随便起,后缀是 qrc,建议在工程目录下新建一个文件夹来保存所有资源文件,如图片、qss样式表等。

在这里插入图片描述

新建完成后,将 qrc 文件相对工程目录的路径填入 CMakeList。注意此步骤不可少!qrc 文件需要编译后才能使用,类似包含 Q_OBJECT 的头文件,都需要经过 Qt 编译器的处理。

在这里插入图片描述

有兴趣的可以了解下具体原理:

在 Qt 中,rccmocuic 是三个用于处理 Qt 项目中不同类型文件的工具。它们分别处理 Qt 的资源文件、元对象编译和用户界面文件。

1. rcc (Qt Resource Compiler)

作用: rcc 用于处理 Qt 的资源文件(.qrc 文件)。这些资源文件允许你将图片、图标、音频文件等嵌入到程序中,而不必将它们单独作为外部文件分发。

  • 输入: .qrc 文件(Qt Resource 文件)。
  • 输出: 生成一个 C++ 源文件,通常是 qrc_<filename>.cpp,该文件包含了资源的二进制数据,并且可以被包含进程序中,供运行时使用。

使用:

rcc resources.qrc -o qrc_resources.cpp

这会将 resources.qrc 文件编译成 C++ 源文件 qrc_resources.cpp,并将资源内容编译到程序中。

2. moc (Meta-Object Compiler)

作用: moc 是 Qt 的元对象编译器,用于处理 Qt 的信号和槽机制(Signal & Slot)。它扫描 C++ 头文件中的类定义,检查这些类是否使用了 Qt 特有的功能(如 Q_OBJECT 宏)。如果是,moc 会自动生成一些额外的代码,以支持 Qt 的元对象系统(比如动态信号槽连接、反射等)。

  • 输入: 包含 Q_OBJECT 宏的 C++ 头文件(.h)。
  • 输出: 生成一个 C++ 源文件(通常是 moc_<classname>.cpp),它包含了信号和槽的实现。

使用:

moc MyClass.h -o moc_MyClass.cpp

这会生成一个名为 moc_MyClass.cpp 的文件,其中包含了 Qt 元对象系统的代码,用来支持信号与槽的功能。

3. uic (User Interface Compiler)

作用: uic 用于处理 Qt 的用户界面文件(.ui 文件)。.ui 文件是 Qt Designer 生成的 XML 文件,定义了程序的 GUI(图形用户界面)布局。uic 将这些 XML 文件转换成 C++ 代码,生成用户界面类的实现代码,通常是 ui_<classname>.h 文件。

  • 输入: .ui 文件(Qt Designer 生成的用户界面文件)。
  • 输出: 生成一个 C++ 头文件(通常是 ui_<classname>.h),该文件包含了用户界面的布局和控件的定义。

使用:

uic myform.ui -o ui_myform.h

这会将 myform.ui 文件转换成 C++ 头文件 ui_myform.h,它包含了用户界面的所有控件和布局信息,可以在代码中使用。


总结:

  • rcc: 处理 .qrc 资源文件,将资源嵌入到程序中。
  • moc: 处理 C++ 头文件,支持 Qt 的信号和槽机制。
  • uic: 处理 .ui 用户界面文件,将 XML 格式的界面转换为 C++ 代码。

这些工具在 Qt 项目的构建过程中自动运行(通常通过 CMake 或 QMake 构建系统),确保资源、信号槽和界面能够正确地集成到最终的应用程序中。

保存 CMakeList.txt 文件后,重新构建项目,在左侧可以看见新出现的 qrc 文件

在这里插入图片描述

右键该文件,选择 Open in Editor,然后添加一个 Prefix,在Prefix 下添加资源文件,点击 Add Files 选择网站上下载的图片,推荐使用 icon。

在这里插入图片描述

然后选择某一个图片资源,右键点击拷贝资源路径到剪贴板,就可以在样式表中使用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTFhub靶场RCE学习

靶场 eval执行 <?php if (isset($_REQUEST[cmd])) {eval($_REQUEST["cmd"]); } else {highlight_file(__FILE__); } ?> PHP代码显示&#xff0c;要求将命令赋值给cmd然后执行 先查看一下根目录文件 ?cmdsystem("ls");&#xff01;切记最后的分…

云计算研究实训室建设方案

一、引言 随着云计算技术的迅速发展和广泛应用&#xff0c;职业院校面临着培养云计算领域专业人才的迫切需求。本方案旨在构建一个先进的云计算研究实训室&#xff0c;为学生提供一个集理论学习、实践操作、技术研发与创新于一体的综合性学习平台&#xff0c;以促进云计算技术…

MQ集群

目录 MQ集群 集群分类 普通集群 集群结构和特征 集群的部署 获取cookie 准备集群配置 启动集群 镜像模式 镜像模式的特征 镜像模式的配置 exactly模式 仲裁队列 集群特征仲裁队列&#xff1a;仲裁队列是3.8版本以后才有的新功能&#xff0c;用来替代镜像队列&#…

spi 回环

///tx 极性0 &#xff08;sclk信号线空闲时为低电平&#xff09; /// 相位0 (在sclk信号线第一个跳变沿进行采样) timescale 1ns / 1ps//两个从机 8d01 8d02 module top(input clk ,input rst_n,input [7:0] addr ,input …

基于物联网的温室大棚控制系统

本设计采用物联网方案&#xff0c;用STM32f103c8t6作为主控芯片&#xff0c;采用DHT11作为温湿度传感器&#xff0c;采集CO2使用JW01-CO2-V2.2传感器模块&#xff0c;并且通过BH1750传感器模块采集光照&#xff0c;通过土壤湿度传感器来获取大棚内部土壤湿度&#xff0c;ESP-01…

初级数据结构——栈

目录 前言一、栈的基本概念二、栈的实现方式三、栈的性能分析四、栈的应用场景五、栈的变体六、出栈入栈的动态图解七、代码模版八、总结结语 前言 数据结构栈&#xff08;Stack&#xff09;是一种线性的数据结构&#xff0c;它只允许在序列的一端&#xff08;称为栈顶&#x…

信号-3-信号处理

main 信号捕捉的操作 sigaction struct sigaction OS不允许信号处理方法进行嵌套&#xff1a;某一个信号正在被处理时&#xff0c;OS会自动block改信号&#xff0c;之后会自动恢复 同理&#xff0c;sigaction.sa_mask 为捕捉指定信号后临时屏蔽的表 pending什么时候清零&…

OpenSSL 自签名

参考文档&#xff1a;unigui开发人员工作手册2021 参考文章&#xff1a;保姆级OpenSSL下载及安装教程-CSDN博客 下载 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 进入后向下拉找到下载位置&#xff0c;建议下载二进制版本的精简版&#xff0c…

Facebook 广告不展示的原因以及解决方法

很多小伙伴在进行Facebook广告投放时会遇到广告不展示的情况&#xff0c;那么遇到这种情况该怎么分析问题并解决呢&#xff1f;本文将为大家揭晓答案。 1. 主页错误或未发布 问题&#xff1a;主页可能存在错误或未正式发布。 解决方案&#xff1a;停用并重新激活主页。 访…

前端vue 列表中回显并下拉选择修改标签

1&#xff0c;vue数据列表中进行回显状态并可以在下拉框中选择修改&#xff0c;效果如下 2&#xff0c;vue 页面关键代码 <el-table-column label"审核" align"center" class-name"small-padding fixed-width" prop"status" >&…

Python | Leetcode Python题解之第559题N叉树的最大深度

题目&#xff1a; 题解&#xff1a; class Solution:def maxDepth(self, root: Node) -> int:if root is None:return 0ans 0queue [root]while queue:queue [child for node in queue for child in node.children]ans 1return ans

Python 中.title()函数和.lower()函数

一.title()函数 1.title()函数的功能 将字符串中的每一单词的首字母大写 2.举例 S1"i love you" S2S1.title() print(S2)3.输出 二.lower()函数 1.lower()函数的功能 将字符串中的每一大写字母都变成的小写字母 2.举例 S1"I LOVE YOU" S2S1.lower()…

STM32问题集

这里写目录标题 一、烧录1、 Can not connect to target!【ST-LINK烧录】 一、烧录 1、 Can not connect to target!【ST-LINK烧录】 烧录突然 If the target is in low power mode, please enable “Debug in Low Power mode” option from Target->settings menu 然后就&…

MySQL数据库:SQL语言入门 【2】(学习笔记)

目录 2&#xff0c;DML —— 数据操作语言&#xff08;Data Manipulation Language&#xff09; &#xff08;1&#xff09;insert 增加 数据 &#xff08;2&#xff09;delete 删除 数据 truncate 删除表和数据&#xff0c;再创建一个新表 &#xff08;3&#xf…

利用滑动窗口解题

目录 前言&#xff1a; 第一题&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 第二题&#xff1a;1004. 最大连续1的个数 III - 力扣&#xff08;LeetCode&#xff09; 第三题&#xff1a;3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&…

【MySQL】数据库必备知识:全面整合表的约束与深度解析

前言&#xff1a;本节内容讲述表的约束的相关内容。 表的约束博主将会通过两篇文章进行讲解&#xff0c; 这是第一篇上半部分。 讲到了约束概念。 以及几种常见约束。下面友友们开始学习吧&#xff01; ps:友友们使用了mysql就可以放心观看喽&#xff01; 目录 表的约束概念 …

ctfshow-web入门-反序列化(web265-web270)

目录 1、web265 2、web266 3、web267 4、web268 5、web269 6、web270 1、web265 很简单的一个判断&#xff0c;满足 $this->token$this->password; 即可 由于 $ctfshow->tokenmd5(mt_rand()) 会将 token 随机为一个 md5 值&#xff0c;我们使用 & 绕一下&am…

Web项目版本更新及时通知

背景 单页应用&#xff0c;项目更新时&#xff0c;部分用户会出更新不及时&#xff0c;导致异常的问题。 技术方案 给出版本号&#xff0c;项目每次更新时通知用户&#xff0c;版本已经更新需要刷新页面。 版本号更新方案版本号变更后通知用户哪些用户需要通知&#xff1f;…

什么牌子充电宝好用质量又好?2024年十款口碑质量最好充电宝推荐

​什么牌子充电宝好用质量又好&#xff1f;随着智能手机和其他移动设备的普及&#xff0c;充电宝已经成为了我们日常生活中必不可少的配件之一。然而&#xff0c;市面上的充电宝品牌众多&#xff0c;质量参差不齐&#xff0c;如何选择一款既好用又质量可靠的产品就成了一个难题…

网页直播/点播播放器EasyPlayer.js播放器OffscreenCanvas这个特性是否需要特殊的环境和硬件支持

在现代Web开发中&#xff0c;EasyPlayer.js H5流媒体播放器作为一款功能强大的H5播放器&#xff0c;其对于视频播放的优化和性能提升一直是开发者关注的焦点。特别是&#xff0c;随着Web技术的发展&#xff0c;OffscreenCanvas这一特性的出现为提升Canvas 2D/3D绘图的渲染性能和…