Qt执行Make步骤时RCC解析错误,无法显示.qrc资源图片
解决QRC文件解析错误(Error 1)并在QGraphicsScene显示资源图片
首先,咱们先搞定最直接的问题——你的myresources.qrc文件存在XML语法错误,这正是RCC工具报错的根源。
1. 修复QRC文件的XML标签错误
看你的myresources.qrc最后一行,你写的是<RCC/>,但根标签<RCC>是非自闭合标签,必须用</RCC>来正确闭合。RCC工具对XML语法要求非常严格,哪怕一个标签格式错误都会触发解析失败。
修正后的myresources.qrc代码:
<RCC> <qresource prefix="/"> <file>img/whitedog.png</file> </qresource> </RCC>
2. 修正MainWindow构造函数的局部变量问题
在你的mainwindow.cpp构造函数里,有一个容易被忽略的bug:
QGraphicsScene * scene = new QGraphicsScene(0,0,1200,880);
这里的scene是局部变量,会覆盖类成员变量QGraphicsScene *scene;。这意味着你后续调用scene->addItem(player)时用的是局部变量,而类成员变量scene仍然是空指针——构造函数结束后局部变量会被销毁,后续操作可能引发崩溃或不显示图片的问题。
修正方法是去掉前面的类型声明,直接给成员变量赋值:
scene = new QGraphicsScene(0,0,1200,880);
3. 验证项目配置与文件路径
最后再检查几个关键细节:
- 确认
img/whitedog.png确实存在于项目根目录下的img文件夹中(和myresources.qrc处于同一层级) - 打开项目的
.pro文件,确保包含了资源文件配置:RESOURCES += myresources.qrc,如果没有就加上 - 在Qt Creator中点击「构建」->「运行qmake」,然后重新编译整个项目
按照以上步骤修改后,RCC解析错误应该会消失,图片也能正常显示在QGraphicsScene中了。
内容的提问来源于stack exchange,提问作者史努比




