C++ QWebEngineView-从资源中加载html

C++ QWebEngineView-从资源中加载html,c++,qt,qtwebengine,qtwidgets,C++,Qt,Qtwebengine,Qtwidgets,我目前正在使用Qt5.8中的QWebEngineView,我想从.qrc文件中加载index.html文件 我的.pro文件如下所示: TEMPLATE = app TARGET = Launcher QT += webenginewidgets CONFIG += c++14 SOURCES += main.cpp RESOURCES += \ launcher.qrc #include <QApplication> #include <QWebEngineVi

我目前正在使用Qt5.8中的
QWebEngineView
,我想从
.qrc
文件中加载
index.html
文件

我的
.pro
文件如下所示:

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

SOURCES += main.cpp

RESOURCES += \
    launcher.qrc
#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();
}
我的
main.cpp
文件如下所示:

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

SOURCES += main.cpp

RESOURCES += \
    launcher.qrc
#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();
}
index.html
中,我只添加了文本
helloworld
,没有其他内容

启动应用程序时,我只会看到一个“无法访问网站”错误屏幕。
然后我在谷歌上搜索并尝试了几次不同的尝试来指定我的
QWebEngineView的资源url

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
,我将不再获得此错误页,而是获得一个空白页。如果我右键单击窗口并选择“查看页面源”,则页面源也是空的

最近,我使用QtCreator 4.2.2创建了一个新的QtQuick应用程序,使用相同的
qrc:…
url,实现了这一点。
现在我创建了一个Qt Widgets应用程序,它不再工作了。

我在这里遗漏了什么?

正如我建议的那样,我将把上面评论中的解决方案作为未来有相同问题的用户的答案

“[…]我碰巧清理了这个项目,点击了“Run qmake”,然后再次运行了这个项目。这次它可以处理三个URL中的任何一个。这太令人沮丧了。
感谢您的帮助@deW1“

对我来说效果很好。生成的任何编译/应用程序输出都表明有什么不寻常的地方吗?你能尝试一下你能想到的最简单的网站吗?HeadingSomething

html文件是否位于资源文件所在的文件夹中?也尝试qrc:///html/index.html 完整的qt+=语句是什么样子的?忘了我刚才说的吧。我碰巧清理了项目,点击“runqmake”,然后再次运行项目。这一次,它可以使用三个URL中的任意一个。这太令人沮丧了。谢谢你的帮助@deW1@TorbenJonas,请回答这个问题。虽然它看起来很琐碎,但实际上可以为您节省大量的工作时间不起作用,它必须有
qrc://
协议。