【发布时间】:2017-09-28 04:11:33
【问题描述】:
我目前正在使用 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 没有其他任何东西。
当我启动应用程序时,我只会看到“无法访问网站”错误屏幕。
然后我四处搜索并尝试了几种不同的尝试来将资源 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,我将不再收到此错误页面,而是显示空白页面。如果我然后右键单击窗口并选择“查看页面源”,则页面源也是空的。
我最近使用相同的qrc:... url 使用 Qt Creator 4.2.2 创建的全新 Qt Quick Application 进行了这项工作。
现在我创建了一个 Qt Widgets 应用程序,但它不再工作了。
我在这里错过了什么?
【问题讨论】:
-
对我来说很好。生成的任何编译/应用程序输出表明有什么异常?
-
你能用你能想到的最简单的网站试试吗?
标题
某事
-
html 文件是否位于资源文件所在的文件夹中?也试试 qrc:///html/index.html 完整的 qt += 语句是什么样的?
-
忘记我刚才说的话。我巧合地清理了项目并点击“运行 qmake”,然后再次运行项目。这次它适用于三个网址中的任何一个。这太令人沮丧了。感谢您的帮助@deW1
-
@TorbenJonas,请将其作为答案。尽管这看起来微不足道,但实际上可以为您节省大量时间来尝试使其正常工作。
标签: c++ qt qtwebengine qtwidgets