我想开发一个使用QtWebKit和JQuery的应用程序。
我需要知道的是,从文件中读取JQuery和evaluateJavaScript,或者将它作为脚本标记嵌入到窗口小部件中显示的“页面”之间有什么区别吗?
编辑:似乎我至少部分地想到了这一点。 evaluateJavaScript显然可靠地工作;但如果我这样做baseurl = QUrl.fromLocalFile(
QDir.current().absoluteFilePath("doesntexist.html"));
view.setHtml(
u"""
<html>
<head>
<script type="text/javascript"
src="jquery-1.4.2.js">
</script>
</head>
<body></body>
</html>""", baseurl);
永远不会从磁盘读取文件(使用inotify检查)。这也会影响用
初始化的baseurlQUrl("file:/")
QUrl(".");
QUrl();
或
QUrl("file://")
我还尝试将脚本src参数更改为硬盘驱动器上的绝对路径,并尝试更改前面带有和不带“./”的相对路径。
如何正确执行(除了Qt资源系统)以获取脚本标记以使用本地js文件?这只是记录不清,还是我错过了什么?
答案 0 :(得分:0)
您可以使用Qt Resource System并将html修改为类似
的内容<script type="text/javascript"
src=":/jquery-1.4.2.js">
并且不要忘记主
中的调用宏Q_INIT_RESOURCE或使用evaluateJavaScript
connect(view, SIGNAL(loadFinished(bool)), this, SLOT(loadJQuery()));
...
void MainWindow::loadJQuery()
{
QFile file("jquery-1.4.2.js");
file.open(QFile::ReadOnly);
view->page()->mainFrame()->evaluateJavaScript(file.readAll());
}
我想使用资源系统会更好。