QT 与webkit(wke) 交互
使用的wke库来源:https://github.com/cexer/wke
参考示例:
http://blog.csdn.net/u012814856/article/details/70312494?locationNum=1&fps=1
1。需要文件
https://github.com/cexer/wke/tree/master/demo/libwke中的三个文件,放在工程目录wke文件夹中。
2.QT工程 添加库,导入wke.lib
3.工程代码:
// 全局的 js 调用 c++ 的函数
wkeJSValue JS_CALL jsMsgBox(wkeJSState* es)
{qDebug()<<wkeJSParamCount(es);const char *text = wkeJSToTempString(es,wkeJSParam(es, 0));QString strtext=QString::fromUtf8(text);const char *title = wkeJSToTempString(es,wkeJSParam(es, 1));QString strtitle=QString::fromUtf8(title);QMessageBox::information(NULL, strtext, strtitle);return wkeJSUndefined(es);
}
void MainWindow::on_pushButton_1_clicked()
{wkeInitialize();wkeWebView* m_pWkeView = wkeCreateWebWindow(WKE_WINDOW_TYPE_POPUP,NULL,0,0,800,600);//绑定C++ 函数wkeJSBindFunction("msgBox", jsMsgBox, 2);//加载本地文件: index.html 文件内容见最后 资源下载 //https://github.com/wangying2016/JsCplusplusInteractons/tree/master/HtmlwkeLoadFile(m_pWkeView,".\\index.html");//下边的循环是为了等待加载网页,没有这个 showWindows将会显示空白while (1){wkeUpdate();if (wkeIsLoadingCompleted(m_pWkeView))break;QThread::usleep(10);}wkeShowWindow(m_pWkeView,true);
}
效果图:
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>测试 js 调用 C++ 代码网页</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><script type="text/javascript">function CallCPlusPlus() {msgBox("点击图片由 js 调用 C++ 弹窗", "提示");}</script></head><body><img id="img_track_event_id" name="img_track_event_name" class="" src="data:images/bd_logo.png" width="300" height="128" onmousedown="CallCPlusPlus()" /><p>点击上图,由 js 函数调用 C++ 函数实现弹窗</p><div><div>html中,由 onmousedown 触发 js 函数 :</div><div>function CallCPlusPlus() {msgBox("点击图片由 js 调用 C++ 弹窗", "测试");}</div><div>而这个函数中的 msgBox 是一个标签,标记了对应的 C++ 中的一个全局函数:</div><div>jsValue JS_CALL jsMsgBox(jsExecState es){const wchar_t *text = jsToStringW(es, jsArg(es, 0));const wchar_t *title = jsToStringW(es, jsArg(es, 1));SOUI::SMessageBox(NULL, text, title, MB_OK);return jsUndefined();}</div><p>这个函数由 es 传递 js 中的 标签 “msgBox” 传来的参数,然后 C++ 函数处理弹窗</p></div></body>
</html>
QT 与webkit(wke) 交互相关推荐
- 为QT的Webkit 编写插件
为了允许的QWebView加载插件,必须使能QWebView的Javascript和Plugins属性,使能方法为: QWebSettings::globalSettings()->setAtt ...
- QT与JavaScript交互/Qt调用JS脚本
QT与JavaScript交互/Qt调用JS脚本 简介 QT中调用JS函数 JS中调用QT函数 完整代码 mainwindow.h mainwindow.cpp html.html Qt调用JS脚本 ...
- qml c++函数 slot_浅析Qt(C++),QML与HTML之间的交互
写在前面 本文适合有一定Qt及HTML经验的人阅读. Qt(C++)和QML间交互 想要了解Qt(C++)和QML间的信息交互,就不得不提到Qt的信号与槽机制. 信号与槽 信号与槽是qt的特有信息传输 ...
- Qt模块头文件出现下划线问题
头文件出现下划线问题,是因为pro文件中没有添加库如pro中没有添加此语句中的multimedia库,QT+=coreguimultimedia,#include<QMediaPlaylist& ...
- 利用QT进行web与本地混合应用开发
原文地址::https://blog.csdn.net/talking12391239/article/details/16857179 相关文章 1.用Qt开发Web和本地混合的应用----http ...
- qt调用linux系统调用,qt在其他函数调用数据库
<多核与GPU编程:工具.方法及实践>----3.2 线程 本节书摘来自华章出版社<多核与GPU编程:工具.方法及实践>一书中的第3章,第3.2节, 作 者 Multicore ...
- qt如何用python结合_在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- Qt 解决MySQL 中文乱码问题
文章目录 Qt 解决MySQL 中文乱码问题 解决此问题的必要前提就是: 1.版本要匹配. 2.数据库连接正常,需要重新编译Qt 自带的源程序中的mysql.pro 工程项目: 3.数据库的编码格式与 ...
- 移植开源QT软件-SameGame
前言: QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javascript形式的编程控制.我个人认为它结合了QtDesigner UI和QtS ...
- qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...
主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...
最新文章
- iOS开发关于block学习的总结
- 软考中项学习之路--在路上
- java教学笔记_java学习笔记(一)
- 用Delphi设计能携带附件的EMail
- POJ - 1696 Space Ant(极角排序)
- Game of Cards Gym - 102822G
- 封装一个邮件发送工具类,一个字,巴适
- JDBC连接SQL Server 2005问题
- unique-substrings-in-wraparound-string(好)
- 链接属性rel=’external’、rel=’nofollow’、rel=’external nofollow’三种写法的区别...
- Java 窗口菜单
- 最通俗易懂的适配器模式
- 数据库可视化软件 安装 for windows
- java wmic_Windows WMIC命令使用详解(附实例)
- 小学生数学测试软件论文,测试数学论文,关于小学生数学基本能力测试量表的贵族常模制订相关参考文献资料-免费论文范文...
- 多想和你拉手跳恰恰恰
- The word 'jsp' is not correctly spelled. Eclipse 拼写检查出错处理办法
- 生日了,总要写点什么
- 关于linux用Xshell的xftp查看隐藏文件夹和文件
- MACD背离指标公式
热门文章
- 2019国内高端智能云呼叫中心系统,让简单的工作变得更有值得
- ActivityGroup详解
- 手把手学ROR三——Rails的代码方式
- nvidia控制面板一直闪退如何解决?
- 信贷风控模型搭建及核心风控模式分类
- docker代理配置详解
- Hadoop 入门教程(超详细)
- python七大神级插件_Maya神级插件 SOuP 和OpenVDB
- python代码写龙卷风_python-打开网站时龙卷风403获取警告
- Cannot load supported formats: Cannot run program svn: CreateProcess error=2, μ