某些资源无法通过URL访问

时间:2014-11-26 14:32:17

标签: c++ qt resources

我在使用所有MVSC2013 32位,MinGW 4.8.2 32位编译器和GCC 4.9 for Android

在Windows上的Qt 5.3.2中从资源加载二进制文件时遇到了麻烦

我有两个资源文件。它们都位于项目的根目录以及所有资源中。第一个是qml.qrc,它是:

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>ScoreText.qml</file>
        <file>ControlButton.qml</file>
    </qresource>
</RCC>

和resource.qrc:

<RCC>
    <qresource prefix="/">
        <file>sound.wav</file>
    </qresource>
</RCC>

我的项目文件中有:

QT += qml quick widgets multimedia
RESOURCES += qml.qrc resource.qrc

我可以阅读QML没问题,但“声音”文件行为不端。

...
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    Q_INIT_RESOURCE(resource);

    QFile q_file;
    q_file.setFileName(":/sound.wav"); // works
    // q_file.setFileName("qrc:/sound.wav"); does not work
    // q_file.setFileName("qrc:///sound.wav"); does not work
    q_file.open(QIODevice::ReadOnly);
    if (!q_file.exists()) 
        qCritical() << "File does not exist.";

    return app.exec();
}

我按照此处的建议初始化资源:http://qt-project.org/doc/qt-5/resources.html#using-resources-in-a-library我尝试按照此处建议的样式“qrc:///”加载它们:http://qt-project.org/doc/qt-4.8/resources.html和样式“qrc:/”这里:http://qt-project.org/doc/qt-5/resources.html,但只有非URL方式(“:/”)有效。但是“main.qml”没问题,只有波形文件...

有什么建议吗?

0 个答案:

没有答案