Qt 脚本文档翻译.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Qt 脚本文档翻译

Qt 脚本Qt支持应用程序利用ECMAScript编程。下面的说明涵盖了用EMCAScript和Qt编程的各个方面。脚本类下面的类可以为qt程序添加脚本的能力QScriptClass 定义qt脚本对象自定义行为的接口QScriptClassPropertyIterator 自定义qt脚本对象的迭代器QScriptContext 表示一个qt脚本函数的调用QScriptContextInfo 关于QScriptContext的其它一些信息QScriptEngine qt脚本代码执行环境QScriptEngineAgent 报告QScriptEngine执行的附属事件接口QScriptEngineDebugger QScriptEngine调试器QScriptProgram 装入一个qt脚本程序QScriptString QScriptEngine内部字符串的句柄QScriptSyntaxCheckResult 脚本语法校验结果QScriptValue qt脚本数据类型的容器QScriptValueIterator java风格的QScriptValue迭代器QScriptable 从qt的C++成员函数访问qt脚本环境脚本语言概述略基本用法要执行脚本代码,需要创建QScriptEngine并调用它的evalute()函数,将脚本代码作为参数传入。【代码】返回值时执行结果(以QScriptValue对象表示);可以被转换成标准c++和qt类型。自定义的属性通过脚本引擎注册后可以通过脚本访问。这最简单的做法是将属性作为脚本引擎的全局对象。【代码】这么做就把属性放到了脚本环境中,因此可以被脚本代码访问。时脚本引擎可以访问QObject任何派生自QObject的实例均可被脚本使用。当一个QObject传递给QScriptEngine::newQObject()函数时,创建了一个qt脚本包装对象,该对象使QObject的信号、槽、属性以及子对象均可被脚本访问。这儿有一个例子,将一个继承自QObject名为“myObject”的子类的实例被脚本代码访问:【代码】这将在脚本环境中创建一个较名为myObject的全局变量。这个变量作为潜在C++对象的代理。注意脚本变量的名称可以是任意指定,它不依赖于QObject::objectName()NewObject()函数还有另外两个可选的参数:一个是所有权模式,还有一个参数是一个选项集合,允许你控制QScriptValue如何包装QObject的特定方面。后面会回过头来介绍这些参数的使用。使用信号和槽Qt脚本引入了qt的核心信号槽机制。用qt脚本适用信号和槽有三种方法:混合C++/脚本:c++程序连接信号和脚本函数。脚本函数可以是,比如说,用户输入的或者从文件读入的。这种办法很有用,特别是在你有一个QObject,但是不想把他暴露给脚本环境时;你只希望脚本可以定义如何响应信号,然后在c++程序侧取建立连接。混合脚本/c++:脚本可以在脚本环境中暴露的预定义的对象间建立信号和槽的连接。在这种场景下,槽函数本身还是在c++程序中编写的,但是连接的定义是完全动态的(由脚本定义的)。完全脚本定义:脚本既可以定义信号句柄函数(),也可以利用这些句柄建立连接。比如,脚本可以定义一个函数句柄指向QLineEdit::returnPressed()信号,然后连接这个信号到脚本函数。用qScriptConnect()函数来连接C++信号和脚本函数。下面的例子定义了脚本信号处理句柄,用来处理QLineEdit::textChnaged()信号:【代码】qScriptConnect()函数的前两个参数和你传给QObject::connect()创建通常的c++连接是一样的。第三个参数是脚本对象,当信号处理函数被调用后,该对象类似this对象;上面的例子我们传入了一个无效的脚本值,因此this对象将是全局对象。第四个参数是脚本函数本身(“槽函数”)。下面的例子演示了this参数如何使用:【代码】我们创建了两个QLineEdit对象,并且定义了一个信号处理函数。连接使用了同一个处理函数,但是处理函数根据哪个对象的信号被触发而调用相应的函数,因此打印出来的内容会不同。在脚本代码中,Qt脚本使用了不同的语法来创建或者断开连接,而不是熟悉的c++语法,像QObject::connect()这样。要连接信号,你引用一个信号作为发送对象的属性,然后调用它的connect()函数。有三个重载的connect()函数,每个函数对应一个disconnect()函数。下面的章节对着三种形式作了描述:信号连接到函数Connect(function)这个形式的连接,connect()函数的参数是要连接到信号的函数。【代码】参数可以像上例这样,是一

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档