Qt资源文件

  • Post author:
  • Post category:其他


Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。如果程序需要加载特定的资源(如图标、文本翻译等),若将资源放置在资源文件中,就不用担心丢失这些文件了。即,将资源以资源文件形式存储,它会编译到可执行文件内部。

使用 Qt Creator 可以很方便地创建资源文件。步骤如下:

在工程上点右键,选择“添加新文件…”,可以在 Qt 分类下找到“Qt 资源文件”:

点击“选择choose”按钮,打开“新建 Qt 资源文件”对话框。在这里我们输入资源文件的名字和路径:

点击下一步,选择所需要的版本控制系统,然后直接选择完成。

可以在 Qt Creator 的左侧文件列表中看到“资源文件”一项,也就是我们新创建的资源文件:

右侧的编辑区有个“添加Add Prefix”添加前缀。首先需要添加前缀,比如,将前缀命名为 res。然后选中这个前缀,继续点击“添加文件Add Files”,找到我们所需添加的文件。

接下来,还可以添加另外的前缀或者另外的文件。这取决于你的需要。当添加完成之后,可以使用绝对路径法给按钮actionNew 添加图标shell.png:

ui->actionnew->setIcon(QIcon("D:/program/QtSourcePicture/shell.png"));

也可以通过使用 : 开头的路径来找到这个文件。比如前缀是 /,文件是r_s.png,那么就可以使用:/QtSourcePicture/r_s.png找到这个文件。如下所示:

这么做带来一个问题,如果以后要更改文件名,比如将 r_s.png 改成 docopen.png,那么,所有使用了这个名字的路径都需要修改。所以,更好的办法是给这个文件取一个“别名”,以后就以这个别名来引用这个文件。具体做法是,选中这个文件,添加别名信息:

这样,便可以直接使用:/QtSourcePicture/docopen.png引用到这个资源,无需关心图片的真实文件名。

如果使用文本编辑器打开 res.qrc 文件,就会看到一下内容:

<RCC>

<qresource prefix=”/”>

<file>QtSourcePicture/c_c.png</file>

<file>QtSourcePicture/c_g1.png</file>

<file>QtSourcePicture/c_g2.png</file>

<file>QtSourcePicture/r_s.png</file>

<file>QtSourcePicture/shell.png</file>

</qresource>

<qresource prefix=”/new”>

<file>QtSourcePicture/c_c.png</file>

<file>QtSourcePicture/c_g1.png</file>

<file>QtSourcePicture/c_g2.png</file>

<file>QtSourcePicture/r_s.png</file>

<file>QtSourcePicture/shell.png</file>

</qresource>

</RCC>

可以对比看一下,看 Qt Creator 生成的是怎样的 qrc 文件。当编译工程之后,便可以在构建目录中找到 qrc_res.cpp 文件,即, Qt 将资源编译成了 C++ 代码。



版权声明:本文为weixin_60461563原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。