【发布时间】:2012-12-26 23:30:11
【问题描述】:
我试图让 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"
}
}
然后我(使用设计器)创建了一个如下所示的资源文件:
<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 有类似问题)。
【问题讨论】:
-
您是否已将您创建的资源文件添加到您的 .pro 文件中?
-
@Castilho:是的,我已经验证了 html 文件实际上最终作为文件中的资源。
-
用你得到的东西来设置 html,比如说,从读取嵌入式资源的后端函数,可能是一个简单的答案(以防有人想知道)
标签: qt qml embedded-resource qtwebkit qt5