首页 > 其他分享 >Qt 中资源文件的添加及使用

Qt 中资源文件的添加及使用

时间:2024-08-28 15:51:04浏览次数:12  
标签:文件 Qt 1.2 别名 添加 资源 前缀


目录

  1. Qt 中资源文件的添加及使用
  2. 编译和运行
  3. 小提示


Qt 中资源文件的添加及使用

概述

在 Qt 开发中,资源文件(.qrc 文件)用于将图像、音频等静态文件打包进程序中。这使得您的应用能够更加独立,无需依赖外部文件。本文将详细介绍如何在 Qt 项目中添加和使用资源文件,并讲解如何对资源文件起别名。

1. 创建资源文件

1.1 在 Qt Creator 中创建资源文件

  1. 右键点击项目

    • 在项目面板中右键点击您要添加资源的项目,选择 Add New...
  2. 选择资源文件类型

    • 在弹出的窗口中选择 Qt -> Qt Resource File,然后点击 Next
  3. 命名资源文件

    • 给资源文件命名,例如 resources.qrc,然后点击 Finish

1.2 编辑资源文件

打开 resources.qrc 文件,您将看到一个 XML 格式的内容。在这里,您可以定义要包含的资源及其路径。

<!DOCTYPE RCC><RCC version="1.0">
    <qresource prefix="/">
        <file>images/logo.png</file>
        <file>sounds/alert.mp3</file>
    </qresource>
</RCC>
  • 注意:确保资源文件路径正确,并且文件存在于项目中。

2. 起别名

有时,为了避免文件路径较长,或希望更方便地引用文件,可以对资源文件起别名。在资源文件中,可以使用 prefix 属性来指定资源的前缀。

2.1 在资源文件中设置别名

修改 resources.qrc 文件,给资源添加别名,例如:

<!DOCTYPE RCC><RCC version="1.0">
    <qresource prefix="/myApp"> <!-- 这里设置了自定义前缀 -->
        <file>images/logo.png</file>
        <file>sounds/alert.mp3</file>
    </qresource>
</RCC>

在上面的例子中,资源的前缀设置为 /myApp。这意味着我们在代码中引用这些资源时,只需使用 :/myApp/ 前缀。

2.2 使用已经起别名的资源

加载图像
QPixmap logo(":/myApp/images/logo.png"); // 使用自定义前缀
QLabel *label = new QLabel;
label->setPixmap(logo);
使用图标

如果您想设置窗口图标,可以这样做:

QIcon windowIcon(":/myApp/images/logo.png"); // 使用自定义前缀
this->setWindowIcon(windowIcon);
播放音频

播放音频文件也非常简单:

QSound::play(":/myApp/sounds/alert.mp3"); // 使用自定义前缀

3. 编译和运行

编译并运行您的应用,确保能够看到加载的图像和播放的音效。如果有任何错误,请检查资源路径和文件是否存在。

小提示

  • 使用 :/ 前缀标识资源,后面跟随您在资源文件中设置的别名和实际路径。
  • 在实际使用之前,请在设计阶段验证所有文件路径是否正确。
  • 通过 Qt 的图形界面管理器添加资源文件时,Qt 会自动为您管理路径,减少出错的机会。

标签:文件,Qt,1.2,别名,添加,资源,前缀
From: https://blog.csdn.net/weixin_65477256/article/details/141613253

相关文章

  • 在图片上加二维码,并且添加文字
    //设置响应头,输出图片//header('Content-Type:image/png');$domain=$this->request->domain();//$public=public_path();//echo$domain.'/mask.png';die;//$res=file_get_contents("./ba......
  • MongoDB文件句柄数限制
    MongoDB文件句柄数限制在实际使用mongodb时,由于分表较多,每个表又有若干索引.当业务量起来时,经常出现连接池socket连接断开的错误,排查mongodb的日志,发现基本都是"Toomanyopenfiles"错误.排查问题查看当前文件的数量限制[root@ip-172-16-1-149rocky]#ulimit-......
  • Qt 事件传递流程-事件处理器|事件分发器|事件过滤器
    (总体传递流程图见文章末尾)自定义控件结构 自定义继承于QLabel的控件类 PropagateLabel.h 自定义窗口 PropagateWidget 在PropagateWidget中添加一个PropagateLabel标签1PropagateWidget::PropagateWidget(QWidget*parent):2QWidget(parent)3{4......
  • Hadoop生态圈(三)- HDFS(分布式文件系统)
    目录设计目标特性HDFS基本原理NameNode概述DataNode概述HDSF读写操作HDFS写数据流程HDFS读数据流程HDFS元数据管理HDFSshellHDFS解决的是海量存储的问题设计目标:故障是常态,因此故障的检测和自动快速恢复是核心适合批量处理,注重数据访问的高吞吐量。一旦写入......
  • hadoop生态圈(二)-zookeeper(分布式小文件存储系统)
    目录zookeeper特性集群角色zookeepershell创建节点读取节点更新节点删除节点对节点增加限制其他命令 zookeeper数据模型数据结构图节点类型节点属性监听机制Watch机制特点zookeeper特性全局数据一致:集群中每个服务器保存一份相同的数据副本,client无论连......
  • 【MSF系列】使用meterpreter从linux系统下载文件到kali
    成功拿到了shell,在/var/www/html/cacti底下有个sql文件,将其下载下来命令download/path/to/file.txt/opt/downloads/file.txt下载后导入本地,可以获得登录密码+----+----------+----------------------------------+-------+---------------+---------------+--------------......
  • 解决方案 | QTTabBar工具栏命令按钮设置everything、filelocator在当前文件夹下面搜索
      备忘everything命令行参数参考-path(是everythin参数)表示在哪个位置(即哪个文件夹)下面搜索,这里%c%是qttabbar的参数,表示当前文件夹https://www.voidtools.com/zh-cn/support/everything/command_line_interface/     效果演示:  =====================f......
  • java如何运行Python文件程序
    有时候会遇到在java中启动Python的程序,下面进行说明packagecom.zxh.util;importlombok.extern.slf4j.Slf4j;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;/***python执行器**@Au......
  • 【FreeRTOS+CubeMX】入门(三)--文件结构与参数配置
    文章目录FreeRTOS文件组成和基本原理文件构成基础知识![请添加图片描述](https://i-blog.csdnimg.cn/direct/a7a87a1201a448bb9ffa1dcd1e58a8ab.png)FreeRTOS配置及功能裁剪configparamters参数讲解FreeRTOS文件组成和基本原理此文章将详细讲解FreeRTOS的文件结构......
  • WPF 如何利用Blend给Button添加波纹效果
    先看一下效果吧:如果不会写动画或者懒得写动画,就直接交给Blend来做吧;其实Blend操作起来很简单,有点类似于在操作PS,我们只需要设置关键帧,鼠标点来点去就可以了,Blend会自动帮我们生成我们想要的动画效果.第一步:要创建一个空的WPF项目第二步:右键我们的项目,在最下方有一个,在Blend......