QT脚本学习笔记
---》QT执行脚本
QScriptEngine myEngine;
QScriptValue three = myEngine.evaluate("function test(){var a=5;return a} test();");
qDebug()<<three.toNumber();//5
---》QT对象到脚本对象转换过程(js访问QT对象)
qt对象--》QScriptValue(qt包装对象)--》脚本对象
#include <QtGui>
#include <QtScript>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QLabel label("xxx");
QScriptEngine myEngine;
QScriptValue scriptLabel= myEngine.newQObject(&label);//生成qt对象的包装对象
myEngine.globalObject().setProperty("myLabel", scriptLabel);//在脚本全局中声明myLable对象,把qt的包装对象关联到脚本对象
myEngine.evaluate("myLabel.setText('yyyy');");//在脚本中改变属性
qDebug()<<label.text();//yyyy
return app.exec();
}
---》通过信号槽使用 js 中的函数
//QString fun = "(function(){print('hello world')})"; //方式一
QString fun = "f = function (){print('hello world')}"; //方式二
QScriptEngine myEngine;
QScriptValue sctiptFun = myEngine.evaluate(fun);
QPushButton button("click");
qScriptConnect(&button,SIGNAL(clicked()),myEngine.globalObject(),sctiptFun);
button.show();
---》qt直接调用js中的方法
QString script = "var obj = {test :function(){print('hello world');}}; ";
QScriptEngine myEngine;
myEngine.evaluate(script);
QScriptValue global = myEngine.globalObject();
QScriptValue fun = global.property("obj").property("test");
fun.call(global);
---》js中连接信号与槽
QScriptEngine myEngine;
//QString scriptStr("function test(){print('hello world');} btn.clicked.connect(this,test) ");
QString scriptStr("var obj = {test :function(){print('hello world');}}; btn.clicked.connect(obj,'test') ");
QPushButton button("click");
QScriptValue btn = myEngine.newQObject(&button);
myEngine.globalObject().setProperty("btn",btn);
myEngine.evaluate(scriptStr);
button.show();
参考:http://blog.163.com/jx_yp/blog/static/119704459201111145400203/
http://blog.163.com/jx_yp/blog/static/119704459201111145411698/
http://blog.163.com/jx_yp/blog/static/11970445920111114542128/
分享到:
相关推荐
qt学习笔记 qt学习笔记 qt学习笔记 qt学习笔记
Qt webkit 学习笔记 超级牛逼 好用 Qt webkit 学习笔记 Qt webkit 学习笔记
Qt个人学习笔记 记录整个学习过程的心得
QT_学习笔记 ,详细描述了QT中widget、MainWindow Dialog的使用方法
本人整理编译的良葛格QT4学习笔记,非常适合QT学习,推荐下载。
Qt3学习笔记,整理的网上资源,繁体中文 适用于Qt3的初学者
Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象...
本人学习QT界面编程的一些学习笔记极其心得,对QT入门者有很好的帮助。
Qt网课学习笔记 网课来源黑马程序员
Qt网课学习笔记需要的可以自取
qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记qt 笔记
qt4学习笔记 1入门 2信号与槽函数 3事件处理机制 4基本版面配置 5常用图形组件 6常用API 7进阶议题
QT学习笔记_经验篇,平时工作中的学习心得与工作总结,希望对初学者能有帮助。
这是我在培训期间学习QT时的一些心得,适合新手入门。希望能够帮助到大家。
现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。
QT入门者的绝佳参考资料,一个高手写的自己学习QT的历程。
QT 4 c++ 笔记 QT 4 c++ 笔记 QT 4 c++ 笔记 QT 4 c++ 笔记 QT 4 c++ 笔记 QT 4 c++ 笔记
基于QT的脚本功能实现
Qt5学习笔记——QRadioButton与QButtonGroup - R先生一天不学习就浑身难受 - CSDN博客1