8、Qt导入资源文件

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

1. 创建资源文件

使用Qt Creator 可以很方便地创建资源文件。我们可以在工程上点右键,选择“添加新文件…”,可以在 Qt 分类下找到“Qt 资源文件”:

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

点击下一步,选择所需要的版本控制系统,然后直接选择完成。我们可以在Qt Creator 的左侧文件列表中看到“资源文件”一项,也就是我们新创建的资源文件:

右侧的编辑区有个“添加”,我们首先需要添加前缀,比如我们将前缀取名为 /。然后选中这个前缀,继续点击添加文件,可以找到我们所需添加的文件。这里,我们选择 所有png 文件。当我们完成操作之后,Qt Creator 应该是这样子的:

最后我们编译一下:这样就成功导入了我们的资源

接下来,我们还可以添加另外的前缀或者另外的文件。这取决于你的需要。

当我们添加完成之后,我们可以通过使用: 开头的路径来找到这个文件。比如,我们的前缀是 /,文件是 butterfly.png,那么就可以使用:/images/butterfly.png找到这个文件。

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

这样,我们可以直接使用:/images/btf引用到这个资源,无需关心图片的真实文件名。


2. 代码中添加资源文件的方法

在代码中,我们通过setIcon函数设置ui的图标。

  • 我们可以通过资源文件的绝对位置进行调用
  • 也可以根据资源文件的相对前缀+文件名(别名)来调用(注意:这种方式需要把资源文件放进Qt程序的文件中)
	//ui->actionnew->setIcon(QIcon("F:/Study/Qt/Qt-学习/QT资料/day2资料/Doc/Image/Luffy.png"));

    //添加Qt资源文件 ": + 前缀名 + 文件名"
    ui->actionnew->setIcon(QIcon(":/Image/Luffy.png"));
    ui->actionopen->setIcon(QIcon(":/Image/LuffyQ.png"));

最后效果如图所示:

3. 本文档程序资源

本文档对应的Qt项目文件可参考以下:

02_QtSource.zip

猜你喜欢

转载自blog.csdn.net/qq_63388834/article/details/135138629