我试图让 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>
结果只是一个空白的白色窗口。如果我http://www.stackoverflow.com
在 qml 文件中使用常规 url ( ) 作为它工作的 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 有类似问题)。