为了方便跨平台使用,Qt提供了一个资源系统。资源系统用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。也就是把资源文件编译成为可执行文件的一部分。这样就不怕路径问题以及资源文件被误删。
在这里先分享一个免费获取图标的网站:https://www.iconfinder.com/
好了,下面来演示如何创建资源文件。
首先,打开文件菜单,选择新建一个项目或者文件,选择下图所示的资源文件。
如果是在做项目开发,那么前缀表示你之后需要添加哪一类的资源文件。例如你命名为file,然后就添加和文件有关的,比如打开文件图标,关闭文件图标,新建文件图标。要保证前缀的意义。
做完这一步,会看到多了个/文件夹。
然后就可以点击Add Files添加文件了。
如果你的资源文件没有放在当前项目下,它可能会提示你是否复制资源文件到当前项目下。最好是复制到当前项目下。
别名的作用是我们如果修改了资源文件的文件名,但是我们使用别名来引用资源文件,那么将不会造成错误。用别名可以保证你即使修改了文件名,也不会出错。
资源文件添加好以后,我们就可以使用资源文件了。资源文件的路径我们可以这样获取:右键文件,然后点击下图所示:
这就是它的路径,当然通过观察我们就会发现,实际上这个路径就是——冒号 前缀 文件名
那我们在代码中设置两个图标来看看。
代码语言:javascript复制#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QIcon>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//设置图标,使用资源文件。
ui->actionOpen->setIcon(QIcon(":/Icon/Open.png"));
ui->actionNew->setIcon(QIcon(":/Icon/New.png"));
}
MainWindow::~MainWindow()
{
delete ui;
}
这次我们在创建项目的时候使用了ui文件,因此快速的创建了一些对象。我们在代码里设置了atcionOpen和actionNew的图标。运行结果如下所示:
实际上资源文件会被编译成为cpp文件的。可以在项目下看的,确实是会被编译成为二进制文件的。
当然了ui文件也会被编译成为cpp文件,如下所示:
关于资源文件,就介绍这么多了。