草庐IT

QtScript

全部标签

javascript - 仅在通过脚本访问时未定义属性

我遇到了一些奇怪的行为,其中可以通过QObject的property函数直接访问属性,但不能通过JavaScript:#include#include#include#includeclassItem:publicQObject{Q_OBJECTpublic:Q_PROPERTY(inttypeIdREADtypeId)Q_PROPERTY(intusesLeftREADusesLeft)Item():mTypeId(0),mUsesLeft(-1){}Item(inttypeId):mTypeId(typeId){if(typeId!=0){mUsesLeft=5;}}Item(co

javascript - 如何分析 QtScript 代码?

我知道有一些工具可以分析纯javascript代码,例如firebug和Chrome的开发者工具,但我想知道是否有任何好的工具来分析QTScript。或者我如何使用这些工具来分析QtScript代码。这个用例是当有一个桌面应用程序时,它的大部分代码是用JavaScript编写的,一些代码是用nativeQT/C++编写的。在这种情况下,如果有人想要分析性能,有哪些工具可以自动进行分析。 最佳答案 主要用于分析QtScript的工具并不多。但是有一个QscriptProfiler由BenjaminMeyer设计,我个人没有使用过它,但

javascript - 是否可以在 QtScript 中使用带有重载运算符的自定义 C++ 类?

有谁知道是否有可能拥有一个带有重载运算符(如+、-、*)的C++类,并以某种方式(这就是魔法发生的地方)向QtScriptEngine声明它,以便像"a+b这样的js表达式"是否像在C++端那样进行评估? 最佳答案 这似乎是不可能的。至少那是我在#qt-labsIRC中收到的答案。但是,我想我找到了一个可行的替代方案:ChaiScript.它完美地嵌入到C++中,与Qt配合良好,允许运算符重载,甚至更好地直接使用任何(?)C++数据类型。 关于javascript-是否可以在QtScri

c++ - 如何在 QtScript 中使用 C++ std 复数

我试图找出如何在QtScript中使用复数,以便可以从QtScript调用用复数参数定义的槽。用户还应该可以从脚本访问复数的基本代数(+、-、exp、...)。只是为了说明,我想调用的是:#includetypedefcomplexComplex;classMyCppClass:publicQObject{Q_OBJECTpublic:...publicslots:voidmySignal(ComplexrCValue);!!有什么想法吗?谢谢! 最佳答案 我认为您必须在QtScript中实现复杂的代数(类似于http://exam

c++ - QtScript 输出重定向

当我调用这段代码时:QScriptEnginee;e.evaluate("print('hello,world!')");输出文本(来自print方法)被写入主应用程序的终端。有什么方法可以将它重定向到自定义QIODevice吗? 最佳答案 您可以用您自己的实现替换print():首先,定义一个C++函数来执行您想要的操作。在这种情况下,它只是空的用于说明:QScriptValuemyPrint(QScriptContext*ctx,QScriptEngine*eng){returnQScriptValue();}然后将该函数安装为

c++ - STL operator= Visual Studio 2010 的行为发生变化?

我正在尝试使用VisualStudio2010(C++)编译QtScriptGenerator(gitorious),但遇到了编译错误。在寻找解决方案的过程中,我偶尔会看到自VS2008以来由于VS2010的STL实现的变化和/或c++0x一致性变化而引入的编译破损。知道下面发生了什么,或者我该如何解决它?如果有问题的代码似乎是QtScriptGenerator的,我想我会更容易修复它。但在我看来,有问题的代码可能在VS2010的STL实现中,我可能需要创建一个解决方法?附言。我对模板和STL很陌生。我有嵌入式和控制台项目的背景,这些项目直到最近才经常被避免以减少内存消耗和交叉编译器风

c++ - QtScript vs QJSEngine 什么时候使用一个或另一个?

我必须在C++应用程序中运行一系列javascript“脚本”。其中大部分是重复Action。代码示例here.我知道Qt,因为第5版包含2个javascript引擎:QtScript和QJSEngine。我的问题是我们应该在哪些情况下使用一种或另一种?哪个在哪些情况下表现更好? 最佳答案 如果您正在进行新的开发并且还没有真正依赖它们中的任何一个,那么您绝对应该选择QJSEngine。例如,您可以找到许多从技术角度解释差异的文章我建议看看这个thread以及this一个。现在QtScript是Qt的一个纯粹的兼容性部分,缺乏QML集

c++ - 我可以将 should.js 与 QtScript 一起使用吗?

我正在使用QtScript来自动化我的应用程序的某些部分以用于开发和测试目的。我已经到了要测试断言的地步,并且基于"standaloneassertionlibraries?"以及我在Debian存储库中可以找到的东西,我选择了Should.js。我无法将它加载到我的Qt应用程序中,因为它依赖于Node的require()功能。我尝试实现这个版本,从"Supportingrequire()ofCommonJS"开始并以下面的代码结尾。它能否奏效,还是我注定要采用这种方法?将should.js的位复制到单个文件中可能会更好吗?我不想让自己负责保持fork是最新的。(许可不是问题,因为我不

c++ - 与 QtScript 相比,带有 Qt 的 Lua 有多容易?

我刚刚开始使用Qt进行C++开发。但是,我也对使用Lua编写我的应用程序脚本很感兴趣,因为各种文章都说明了它在编写应用程序的工作流/用户界面/胶水方面的开发速度(易用性)。但是,开箱即用的Qt不支持它,而是包含QtScript。我的问题基本上是我应该尝试将Lua与Qt结合使用来开发商业应用程序,还是坚持使用SDK中提供的QtScript?我猜主要是开发速度与稳定性的问题。 最佳答案 我遇到过同样的困境。我更喜欢Lua而不是ECMAScript对于这些类型的任务。然而,尽管编写Lua绑定(bind)很容易,但QtScript提供的集成

windows - QtScript:在 64 位 Windows 上崩溃

我已经在Windows下为64位架构编译了Qt,除了QtScript之外,其他都运行良好。以下简单代码,与32位QtforWindows完美配合,如果使用64位Qt编译会崩溃。也许这是我的代码中的错误?或者Qt不兼容64位?或者是其他东西?欢迎任何评论。#include#includeintmain(intargc,char*argv[]){QCoreApplicationapp(argc,argv);QScriptEngineoEngine;oEngine.evaluate("functionfoo(){vara=[[0]];a[0][0];}");for(;;){oEngine.e
12