5.1 菜单栏( 二 )


使用 Qt可以很方便地创建资源文件 。我们可以在工程上点右键 , 选择“添加新文件…” , 可以在 Qt 分类下找到“Qt 资源文件”:
点击“选择…”按钮 , 打开“新建 Qt 资源文件”对话框 。在这里我们输入资源文件的名字和路径:
点击下一步 , 选择所需要的版本控制系统 , 然后直接选择完成 。我们可以在 Qt的左侧文件列表中看到“资源文件”一项 , 也就是我们新创建的资源文件:
右侧的编辑区有个“添加” , 我们首先需要添加前缀 , 比如我们将前缀取名为。然后选中这个前缀 , 继续点击添加文件 , 可以找到我们所需添加的文件 。这里 , 我们选择 -open.png 文件 。当我们完成操作之后 , Qt应该是这样子的:
接下来 , 我们还可以添加另外的前缀或者另外的文件 。这取决于你的需要 。当我们添加完成之后 , 我们可以像前面一章讲解的那样 , 通过使用 : 开头的路径来找到这个文件 。比如 , 我们的前缀是 / , 文件是 -open.png , 那么就可以使用://-open.png找到这个文件 。
这么做带来的一个问题是 , 如果以后我们要更改文件名 , 比如将 -open.png 改成 .png , 那么 , 所有使用了这个名字的路径都需要修改 。所以 , 更好的办法是 , 我们给这个文件去一个“别名” , 以后就以这个别名来引用这个文件 。具体做法是 , 选中这个文件 , 添加别名信息:
这样 , 我们可以直接使用://doc-open引用到这个资源 , 无需关心图片的真实文件名 。
如果我们使用文本编辑器打开 res.qrc 文件 , 就会看到一下内容:
? 我们可以对比一下 , 看看 Qt帮我们生成的是怎样的 qrc 文件 。当我们编译工程之后 , 我们可以在构建目录中找到 .cpp 文件 , 这就是 Qt 将我们的资源编译成了 C++ 代码 。
【5.1 菜单栏】document-open.pngdocument-open-fr.png
我们可以对比一下 , 看看 Qt帮我们生成的是怎样的 qrc 文件 。当我们编译工程之后 , 我们可以在构建目录中找到 .cpp 文件 , 这就是 Qt 将我们的资源编译成了 C++ 代码 。
.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);//ui->actionnew->setIcon(QIcon("E:/qt_picture/Luffy.png"));//使用添加Qt资源": + 前缀名 + 文件名"ui->actionnew->setIcon(QIcon(":/new/prefix1/Image/down.png"));ui->actionopen->setIcon(QIcon(":/new/prefix1/Image/LuffyQ.png"));}MainWindow::~MainWindow(){delete ui;}
运行效果图: