当我的应用程序正在加载时,我是否需要将 java 脚本对象加载到 QwebKit 中?
我可以使用 setHtml 和 html 和格式化的 java 脚本字符串,但它很难维护。
我的问题是我可以将 html 和 java 脚本作为资源嵌入到 Qwebkit 中吗?
我也不知道应用程序用户可以使用 html 和 javascript
问问题
1621 次
1 回答
3
是的你可以。
只需将您的 JS/CSS 添加到资源文件(如果您不知道如何查找 Qt 文档),然后在您的 HTML 中简单地使用qrc:/file/path/or/alias
.
例如,如果我将 JQuery 添加到资源文件中,别名为/js/jquery
,然后加载它,我会将其放入我的 HTML 文件中:
<script type="text/javascript" src="qrc:/js/jquery"></script>
从资源文件加载 HTML 文件似乎更费力,因为我似乎无法开始QWebKit::setUrl(QUrl("qrc:/resource/path"))
工作(“:/资源/路径”对我也不起作用)。我目前做的是这样的:
QString readFile (const QString& filename)
{
QFile file(filename);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream stream(&file);
return stream.readAll();
}
return "";
}
...
myWebKitObject->setHtml(readFile("qrc:/html/index"));
但是,创建指向其他 HTML 资源的链接可能是个问题。如果有人知道如何处理这个问题,请发表评论!(我想你可以通过重新实现网络管理器类来拦截 webkit 发送 http 请求并且如果它们用于 qrc:/ urls,则可以从资源系统中读取文件并做出响应,但是你必须管理 mime 类型等等(例如,如果资源是图像)你自己......)
于 2010-10-26T18:12:30.033 回答