Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1636|回复: 0
打印 上一主题 下一主题

qt调用javascript

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2016-11-16 16:04:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Qt有一个叫QWebView的类,它是基于WebKit引擎的浏览器。除此之类Qt还有可以显示HTML代码的部件如QTextEdit等,为我们提示了丰富、实用、简便和意想不到的功能。Qt的扩展性非常好,它可以允许你的C++代码与网页里的Javascript进行交互。这里分享一下自己使用C++执行网页的Javascript函数的一点经验。
    调用JavaScript代码是通过QWebFrame类的evaluateJavaScript函数来实现的。下面是一个例子,我写了一个本地的HTML文件如下:
<html>
<head>
<script type="text/javascript" src="test.js">
</script>
</head>
<body>
<form>
<input type="button" value="Click me!" >
</form>
</body>
</html>
这个简单的网页有一个按钮,点击后调用Test函数,而Test函数是在一个test.js的Javascript文件,文件内容如下:
function Test() {
alert("Test");
}
function add() {
return 33;
}
建立一个工程,加入一个QWebView,初始化载入Test.html,
ui.webView->load(QUrl("test.html"));
再加入一个按钮,为了调用Javascript,然后在按钮点击时就可以用C++代码:
ui.webView->page()->mainFrame()->evaluateJavaScript("Test()");
运行后可以看到网页弹出了一个提示框。这和在网页里面点击按钮的效果是一样的。

附注:
如果是qt调用js函数,js函数带参数时,要多注意, 在qt里该函数调用方法要写成:
QString method = QString("jsFunction(\"%1\", \"%2\")").arg(param1).arg(param2);
m_web_view->page()->mainFrame()->evaluateJavaScript(method);
参数两边的引号必不可少,而且要转义符转义。

http://blog.csdn.net/brave_heart_lxl/article/details/7071955



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-4 02:48 , Processed in 0.055268 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表