微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐