QWebEngineView - 从资源中加载 html

QWebEngineView - Load html from resources

我目前正在使用 Qt 5.8 中的 QWebEngineView,我想从我的 .qrc 文件中加载一个 index.html 文件。

我的 .pro 文件如下所示:

TEMPLATE = app
TARGET = Launcher
QT += webenginewidgets
CONFIG += c++14

SOURCES += main.cpp

RESOURCES += \
    launcher.qrc

我的 main.cpp 文件如下所示:

#include <QApplication>
#include <QWebEngineView>

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

    QWebEngineView view;
    view.load(QUrl("qrc:/html/index.html"));
    view.resize(1024, 768);
    view.show();

    return a.exec();
}

在我的项目中有一个 launcher.qrc 文件:

<RCC>
    <qresource prefix="/html">
        <file>index.html</file>
    </qresource>
</RCC>

index.html 中,我只是添加了文本 Hello World,没有添加任何其他内容。

当我启动应用程序时,我只看到一个 "Website not reacheable" 错误屏幕。
然后我四处搜索并尝试了几种不同的尝试来将资源 url 指定给我的 QWebEngineView:

view.setUrl(QUrl("qrc:/html/index.html")); // Same error page
view.page()->setUrl(QUrl("qrc:/html/index.html")); // Same error page
view.page()->load(QUrl("qrc:/html/index.html")); // Same error page

如果我将资源 url 从 qrc:/html/index.html 更改为 :/html/index.html,我不会再看到此错误页面,而是一个空白页面。如果我然后右键单击 window 和 select "View page source" 页面源也是空的。

我最近使用 Qt Creator 4.2.2 创建的新 Qt Quick 应用程序使用相同的 qrc:... url.
现在我创建了一个 Qt Widgets 应用程序,但它不再工作了。
我在这里错过了什么?

按照建议,我会把上面评论中的解决方案作为以后遇到相同问题的用户的答案。

"[...] 我巧合地清理了项目并点击了 "Run qmake" 然后又点击了 运行 项目。这次它使用了三个 url 中的任何一个。这太令人沮丧了。 感谢您的帮助 @deW1"