QWebEngineView - 从资源加载html

时间:2017-04-30 14:11:39

标签: c++ qt qtwebengine qtwidgets

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

我的.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,而没有任何其他内容。

当我启动应用程序时,我只是得到一个“网站无法访问”的错误屏幕 然后我用Google搜索并尝试了几种不同的尝试来指定我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

如果我将资源网址从qrc:/html/index.html更改为:/html/index.html,我不再会收到此错误页面,而是会显示空白页面。如果我然后右键单击窗口并选择“查看页面源”,页面源也是空的。

我最近使用Qt Creator 4.2.2使用相同的qrc:...网址创建了一个全新的Qt快速应用程序。 现在我创建了一个Qt Widgets应用程序,它不再起作用了。
我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

正如所建议的那样,我将把上述评论中的解决方案作为未来用户遇到同样问题的答案。

&#34; [...]我巧合地清理了项目并点击了#34; Run qmake&#34;然后再次运行该项目。这次它适用于三个网址中的任何一个。这太令人沮丧了。 感谢您的帮助@ deW1&#34;