Qt 5.5 中Qt Script翻译
文章平均质量分 84
tianyapai
困局
展开
-
Qt 5.5 中Qt Script翻译 (七)
接着上一章基于原型的继承Qt Script原型对象的目的是定义其他Qt Script对象集应该共享的行为。我们说,共享相同原型对象的对象属于同一类(同样,在技术方面,这不应该与C++和Java等语言的类结构混淆,ECMAScript没有这样的构造)。基本的基于原型的继承机制工作如下:每个QT脚本对象都有另一个对象的内部链接,即它的原型。当在对象中查找属性时,当在对象中查找属性时,对象本...原创 2018-12-07 17:02:52 · 463 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (八)
基于Value类型实现原型对象【不是new出来的】在为基于值的类型(例如,QPointF)实现原型对象时,应用相同的一般技术;您用应该在实例之间共享的功能填充原型对象。然后通过调用QScriptEngine::setDefaultPrototype()将原型对象与类型相关联。这确保了当例如相关类型的值从槽返回到脚本时,脚本值的原型链接将被正确初始化。当自定义类型的值存储到QVariants...原创 2018-12-07 17:54:58 · 493 阅读 · 1 评论 -
Qt 5.5 中Qt Script翻译 (一)
找了半天关于QtScript的中文文档很少,只能查看英文文档,顺便翻译一下。 Qt对基于ECMAScript的脚本提供了支持,下面的指导和参考涵盖了ECMAScript和Qt的各个方面。 脚本类 下面的类将脚本的功能添加到Qt应用程序当中。 QScriptClass 用于定义自定义的Qt脚本对象的接口...原创 2018-12-05 15:13:17 · 3412 阅读 · 2 评论 -
Qt 5.5 中Qt Script翻译 (二)
接着上一章的讲解当connect()或者disconnect()成功调用,将返回undefined;否则,将投递一个脚本异常,你可以从结果Error object中获取error信息,例如:try { myQObject.somethingChanged.connect(myQObject, "slotThatDoesntExist");} catch (e) { p...原创 2018-12-05 17:59:38 · 675 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (三)
接着上一章的讲解枚举值用Q_ENUMS声明的枚举值不能作为单个封装对象的属性使用,然而,如果他们是QMetaObject封装的对象就可以通过用QScriptEngine::newQMetaObject()创建。Qt C++类型与脚本类型之间的转换Qt脚本能执行脚本到C++端的类型转换,例如,当一个C++信号触发一个脚本函数时,当你在脚本中调用一个QObject属性时当你在C++...原创 2018-12-07 09:26:22 · 584 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (四)
接着上一章让C++类的属性在脚本中有效在上一个例子当中,如果我们想在Qt脚本中set或get属性,我们需要像下面这样写代码:var obj = new MyObject;obj.setEnabled( true );print( "obj is enabled: " + obj.isEnabled() );为了使这成为可能,您必须定义C++ QObject子类中的属性。例如,...原创 2018-12-07 10:49:37 · 590 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (五)
接着上一章节Qt脚本中的this对象当Qt脚本函数在脚本中被调用时,当执行函数体时,调用它的方式确定该对象,如下面的脚本示例所示:var getProperty = function(name) { return this[name]; }; name = "Global Object"; // creates a global variable print(getProp...原创 2018-12-07 14:05:26 · 1181 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (六)
接着上一章构造函数一些脚本函数是构造函数;它们期望初始化 new 对象。下面的片段是一个小例子: function Book(isbn) { this.isbn = isbn; } var coolBook1 = new Book("978-0131872493"); var coolBook2 = new Book("978-1593271473");...原创 2018-12-07 15:44:08 · 431 阅读 · 0 评论 -
Qt 5.5 中Qt Script翻译 (九)
接着上一章重定义print()QtScript提供了一个内建的print()函数可用作简单的调试打印,内建的print()写到标准输出,你能重定义print()(或者添加自己的函数,例如debug()或者log())用于重定向,下面的代码显示了一个自定义的print()重定向到QPlainTextEdit. QScriptValue myPrintFunction(QScriptCo...原创 2018-12-11 11:57:28 · 707 阅读 · 0 评论