添加资源的方式分为两种:
1:用户可见的图片资源方式。
这种方式说的是在开发的应用程序中,用到的哪些图片,使用者是可以查看到的。
首先,使用这种方式之前,需要将图片资源文件夹放到与运行程序同一级目录下,如下图展示
文件夹"image"与应用程序"LearnQtDemo.exe"在同一级目录,如何设置呢?代码如下
QString qExePath = QCoreApplication::applicationDirPath();
QDir::setCurrent(qExePath);
使用该代码之前,添加上 #include<QDir>
假设,现在程序中使用QLable控件,使用setStyleSheet方式更改风格,代码如下
QString g_labPic = "QLabel{background-image: url(./image/zk_s.png)}";
ui.labPic->setStyleSheet(g_labPic);
2:用户非可见的图片资源方式。
这种方式是在发布应用程序时,用户只能操作exe运行程序,图片资源程序内部进行打包加载。这时候,Qt中*.qrc文件起到了很大的作用。我的开发工具是VS2017+Qt5.14.2。版本不一致有可能导致使用qrc文件的方式不用,我所知道是是VS2010版本在使用qrc文件时,就没有2017版本那么方便快捷。
首先,当我们创建一个新的项目时,选择 Qt Widgets Application,当生成一个纯的项目之后,会在对应的程序中生成一个叫做*.qrc的文件
双击该文件,会出现以下页面
点击Add按钮,可以添加项目中需要的图片资源,其中需要注意的是,存储图片的文件夹需要和qrc在同一级目录下,成功添加资源之后的效果
当在程序中对控件进行图片更换时,代码如下
QString g_labPic = "QLabel{background-image: url(:/QtWidgetsApplication1/image/gray.png)}";
ui.labPic->setStyleSheet(g_labPic);
-------------------------------------------------------------------------------------
这两种方式唯一的不同是url后面的路径描述方式不一致,其他的写法都一样。