我在 Qt 论坛上阅读了QFile::exists
可用于测试图像资源是否存在的信息。
在我的项目中,我有很多图像,QML 文件中的参考之一是:
qrc:/images/ImageViewer/viewer_camera_rear2_off.png
我检查了 Qt Creator 并且资源存在且正确,我在 C++ 中添加了一个名为 checkImage 的函数:
QString Manager::checkPath(QString path) {
bool valid = false;
if ( path.length() > 0 && path.indexOf(".") > 0 ) {
const QString QRCprefix("qrc:");
if ( path.startsWith(QRCprefix) != true ) {
const QString imgsPath("/images/");
if ( path.startsWith(imgsPath) != true ) {
path = imgsPath + path; /*Thank you @WilliamMiller*/
}
path = QRCprefix + path;
}
valid = QFile::exists(path);
}
return (valid == true) ? path : "";
}
我已经在 Qt Creator 中对此进行了调试并QFile::exists
返回 false,我知道图像和参考是正确且存在的绝对事实,那么 Qt 开发人员论坛上的信息是否错误?
我还尝试将 QRC 前缀更改为:
qrc:/
qrc://
结果还是一样 QFile::exists 返回 false。