我有一个Qt应用程序,我使用QML文件作为源创建并显示QQuickView对象。 这个QML有一个'WebView'项(QtWebView 1.0),它显示一个本地的.html文件。
我需要从Qt代码(Qt - > Qml - > Html)访问html代码,反之亦然(Html - > Qml - > Qt)
我的Qt代码和Qml代码已连接,但我在Qml< - >中遇到了问题。 HTML ...
在互联网上搜索我尝试了几种选择,但没有成功。最后一个是.js文件,作为代理(应该从Html调用,应该调用Qml)
我的代码现在就是这样:
MyWebView.qml
Rectangle {
id: rectMyWebView
width: 1000
height: 800
WebView {
id: myWebView
objectName: "webView"
anchors.fill: parent
url: "file:///d:\\test.html"
function fromHtmlToQML1(text)
{
console.log("Text from html" + text)
}
}
// Called from Qt code: OK!!
function fromQtToQml(text)
{
console.log("Text from qt: " + text)
runJavaScript("jsCall2", function(result) { console.log(result); });
}
// 2nd option
function fromHtmlToQML2(text)
{
console.log("Text from html" + text)
}
}
的test.html:
<!doctype html>
<html>
<head>
<style type="text/css">
...
...
</style>
</head>
<body>
...
<script src="test.js" type="text/javascript"></script>
<div class="mybutton"> <button onclick='myFunction1()'>Call Qt</button></div>
...
</body>
</html>
test.js(必须在哪里?)
function myFunction1() {
myWebView.fromHtmlToQML1();
myWebView.fromHtmlToQML2();
}
当我使用Html按钮时,出现错误:
“js:未捕获的ReferenceError:myFunction1未定义”
这是test.js的位置问题吗?
是从Html调用Qml的方法(在Qml中用作WebView的源代码)
提前多多感谢,
迭