Qt脚本访问实时库
2016-02-03 16:36
281 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
在脚本中可以访问C++代码中的QObject类型及其子类的实例,也可以创建QObject类型及其子类的实例。
对Qt的核心信号槽机制有很好的支持,可以在C++程序或Qt脚本中连接应用程序的信号和脚本中的函数。
Qt脚本不能独立运行,必须和C++代码配合才能实现完整的功能。
本程序(程序名:qs)利用Qt脚本引擎实现了脚本解析功能,并通过包装实时库接口,提供了脚本访问实时库的能力。
示例:
封装了文件读写接口类QSFile。可在脚本中定义该类的对象,实现文件的读写功能。示例:
封装了定时器QSTimer。可在脚本中定义该类的对象,通过连接该类对象的超时信号以及脚本函数,可实现脚本函数的定时执行。
示例:
当然,如有需要,qs可以不断扩充,封装更多的接口给脚本使用。
(以上示例具体可参考脚本example.js)
1﹜ 脚本文件解析:
a) qs –f 脚本名称,可解析并执行脚本文件,脚本执行后退出程序,适用于脚本文件只需执行一次的情况。例如:
b) qs –fl 脚本名称,可解析并执行脚本文件,脚本执行后不退出,适用于脚本文件中定义了连接定时器信号的函数,函数定时执行的情况。例如:
2﹜ 命令行交互:
qs不带任何参数,即可进入命令行交互模式,qs可以接受终端输入的指令,解析并执行,例如:
总之,Qt脚本提供了一种能力,即用c++实现复杂高效的接口,并用脚本调用它们(当然Python对此笑而不语)。
一、 概述
Qt脚本是基于ECMAScript的脚本语言,其语法与JavaScript类似。Qt脚本可以使应用程序方便的扩展功能,增加程序的灵活性。Qt脚本有如下几个重要的特征:在脚本中可以访问C++代码中的QObject类型及其子类的实例,也可以创建QObject类型及其子类的实例。
对Qt的核心信号槽机制有很好的支持,可以在C++程序或Qt脚本中连接应用程序的信号和脚本中的函数。
Qt脚本不能独立运行,必须和C++代码配合才能实现完整的功能。
本程序(程序名:qs)利用Qt脚本引擎实现了脚本解析功能,并通过包装实时库接口,提供了脚本访问实时库的能力。
二、 qs的功能
封装了本地实时库访问接口CTableOp类,暴露给脚本的全局对象名为qTableOp,并提供3个接口:TableGet,SqlGet,TableGetByKey。脚本可利用这3个接口从本地实时库取数。示例:
封装了文件读写接口类QSFile。可在脚本中定义该类的对象,实现文件的读写功能。示例:
封装了定时器QSTimer。可在脚本中定义该类的对象,通过连接该类对象的超时信号以及脚本函数,可实现脚本函数的定时执行。
示例:
当然,如有需要,qs可以不断扩充,封装更多的接口给脚本使用。
(以上示例具体可参考脚本example.js)
三、 使用方法
本程序的命令为qs,提供了两种运行方式:1﹜ 脚本文件解析:
a) qs –f 脚本名称,可解析并执行脚本文件,脚本执行后退出程序,适用于脚本文件只需执行一次的情况。例如:
b) qs –fl 脚本名称,可解析并执行脚本文件,脚本执行后不退出,适用于脚本文件中定义了连接定时器信号的函数,函数定时执行的情况。例如:
2﹜ 命令行交互:
qs不带任何参数,即可进入命令行交互模式,qs可以接受终端输入的指令,解析并执行,例如:
四、 总结:
Qt从4.3版本开始引入了脚本机制,大大增强了应用程序的扩展能力及灵活性,市面上有不少组态软件都由Qt编写,并充分利用了Qt的脚本机制,提供专业用户二次开发的能力。本工具是对Qt脚本的初探,试图通过它在**系统应用Qt脚本,并发掘更多Qt脚本的功能。本工具目前仅限于利用脚本访问实时库获取实时数据,并将数据写入文件,当然结合cron以及shell脚本,也可以有更大的使用空间。后续如有需要,可以向qs加入更多的接口供脚本调用,增强脚本的能力。总之,Qt脚本提供了一种能力,即用c++实现复杂高效的接口,并用脚本调用它们(当然Python对此笑而不语)。
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Shell 脚本编程陷阱
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- VBS调用WMI快速关闭IE的脚本
- Oracle数据库执行脚本常用命令小结
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- 不错的批处理脚本 第一部分
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- 不错的批处理脚本实例代码 第二部分
- 使用脚本和批处理清除电脑中的痕迹的代码第1/2页
- 让你的脚本说话
- Lua脚本获取喜马拉雅MP3音频地址
- SQL Server中数据行批量插入脚本的存储实现
- 编程界主流脚本编程语言的比较和选择
- 批量文件查找替换功能的vbs脚本