如何在Qt应用程序中正确添加资源

时间:2018-07-23 16:50:10

标签: qt qml qt5 qurl qresource

我正在尝试在Qt中部署Windows应用程序,所以我将模式更改为发布,但是当我执行它时,它只写了

file::/qml/Main.qml: File is empty

我已经尝试过多次重做 resources.qrc ,但是没有成功。

resources.qrc

<RCC>
    <qresource prefix="/">
        <file>qml/Pages/DetailPage.qml</file>
        <file>qml/Pages/IntroPage.qml</file>
        <file>qml/Pages/LibaryPage.qml</file>
        <file>qml/Pages/Page.qml</file>
        <file>qml/Pages/PageView.qml</file>
        <file>qml/Controls/ControlSlider.qml</file>
        <file>qml/Models/CityModel.qml</file>
        <file>images/heatmapicon.png</file>
        <file>qml/Main.qml</file>
    </qresource>
</RCC>

我尝试复制qml和images文件夹(它们与 main.cpp resources.qrc 位于同一文件夹中),但也没有成功。

这就是我为QQuickView设置主要来源的方法:

view_->setSource(QUrl::fromLocalFile(QStringLiteral(":/qml/Main.qml")));

在调试模式下,没有问题,一切都按预期启动。

如何更改资源/代码以使其正常工作?

感谢您的帮助!

//编辑:

我设法用view_>setSource(QUrl(QStringLiteral("qrc:/qml/Main.qml")));

解决了这个问题

1 个答案:

答案 0 :(得分:1)

您不必使用QUrl::fromLocalFile(),该函数表示您正在寻找本地文件,但是.qrc处理的路径是虚拟的。

使用:

view_->setSource(QUrl(QStringLiteral("qrc:/qml/Main.qml")));