我试图将我的应用程序的样式图像包含到一个Q资源文件中。当我将文件直接包含在代码中时,它可以工作,但是当我尝试使用QResource时,它会失败(不要加载该文件)。
我在主目录中有资源文件:
AppFolder
|- main.cpp
|- darkstyle.qrc
|- darkstyle
|- WindowTitleBar.png下面的示例打印: failed1 failed2
#include <QApplication>
#include <QResource>
#include <Qfile>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
bool ok= QResource::registerResource("darkstyle.qrc");
if (!ok) qDebug()<<"failed1";
QFile file(":/darkstyle/WindowTitleBar.png");
//QFile file("../AppFolder/darkstyle/WindowTitleBar.png"); //that work
if(!file.open(QFile::ReadOnly | QFile::Text)) qDebug()<<"failed2";
else file.close();
//return a.exec();
return 0;
}注意: Qt创建者默认情况下在顶部文件夹中创建二进制文件( ../build-AppFolder_Qt_5_4_1_MSVC2013_64bit-Debug/debug/AppFolder.exe ):../build-AppFolder_Qt_5_4_1_MSVC2013_64bit-Debug执行根路径似乎是:../build-AppFolder_Qt_5_4_1_MSVC2013_64bit-Debug
我尝试了大多数可能的组合和执行路径。
Note2:有些示例使用.rcc文件格式,我没有这些文件格式,但这可能是一个线索。
摘要:如何从QT应用程序中访问QResource文件?
编辑1: qrc文件的内容:
<RCC>
<qresource prefix="/">
<file>darkstyle/WindowTitleBar.png</file>
<file>darkstyle/WindowTitleButton.png</file>
<file>darkstyle/WindowTitleButton1.png</file>
<file>darkstyle/WindowTitleButton2.png</file>
<file>darkstyle/WindowTitleButton3.png</file>
</qresource>
</RCC>发布于 2015-03-16 10:15:31
这个问题与给定版本的QT与MSVS2013不兼容有关。这个问题可以通过下载另一个版本的QT或visual来解决。
发布于 2015-03-16 21:30:40
注册资源(“darkstyle.qrc”)注册资源描述。如果您希望像这样动态地使用资源,则需要注册已编译的资源本身。运行rcc -binary darkstyle.qrc -o darkstyle.rcc并使用QResource::registerResource("darkstyle.rcc")
或者,直接将资源编译成二进制文件。这样做,在您的+=中使用资源darkstyle.qrc,并省略QResource::registerResource。
https://stackoverflow.com/questions/29073163
复制相似问题