如何在Qt WebView中显示嵌入式html

我试图让Qt WebView显示一个嵌入为Qt资源的html文件,但我似乎无法让它工作.我创建了一个新的Qt Quick应用程序并添加一个简单的qml文件

import QtQuick 2.0
import QtWebKit 3.0

Rectangle {
    id: content
    width: 800
    height: 600
    color: "black"

    WebView {
        id: webView
        anchors.fill: parent
        url: "qrc:/res/test.html"
    }
}

然后我创建(使用Designer)一个如下所示的资源文件

<RCC>
    <qresource prefix="/res">
        <file>test.html</file>
    </qresource>
</RCC>

并创建了一个简单的test.html文件(与.qrc文件位于同一目录中):

<html>
<head><title>Hello</title></head>
<body>
  <h1>Hello World!</h1>
</body>
</html>

结果只是一个空白的白色窗口.如果我在qml文件中使用常规URL(http://www.stackoverflow.com)作为其工作的URL – 将显示页面.如果我使用嵌入图像的名称(qrc:/qt-project.org/mac/cursors/images/pluscursor.png),则显示该图像.

它看起来好像确实添加了html文件(当我枚举嵌入资源时至少列出它),但我对Qt资源系统的理解是有限的,所以我很可能误解了一些基本的东西.

谁能告诉我我做错了什么?

更新:如果我尝试告诉Web视图也从C加载URL,我已经验证了行为是否相同.我还验证了资源确实已嵌入 – 我可以使用QResource打开和读取资源.此外,这似乎并不特定于Qt5:http://qt-project.org/forums/viewthread/18181(有人与Qt 4.8有类似问题).

解决方法

首先,确保在编译文件夹(.RCC文件或qrc_<资源名称> .cpp)上正确编译资源文件
其次,确保你的文件路径是正确的(在我的情况下qrc:/images/resource/html/test.html).您可以打开QRC文件并右键单击html文件,然后单击“将资源路径复制到剪贴板”.
第三,请注意,某些网址需要更多时间才能完全加载.

最后,我测试了这个场景,它运行得很好(使用Qt 5.1.0)

祝你好运 – S.M.Mousavi

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些