问题标签 [qscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 将 Qt C++ QObject 暴露给 Python
我有一个执行一些数据密集型操作的软件组件(Qt/C++ GUI-less 库)。
将其功能公开为 Python 本机扩展的最佳方式是什么?在 Boost::Python 中手动包装它?任何基于 QObject/QMetaObject 的东西?也许重用 QScript 包装器?
注意 - 我知道这个问题与软录制有关,但我认为可能有一种我一无所知的规范方法,我希望这个问题不会演变成个人偏好评论风暴
javascript - Qt:如何从 qscriptengine 传递数组或字典?
我创建了一个 QScriptEngine 并公开了一个可以从 js 脚本调用的对象函数。
myObj 是一个 QObject,其功能类似于...
在我的 js 代码中,我可以这样称呼它......
这可以按我的预期工作,但我找不到任何关于将数组或字典传递给这些函数的文档。例如,如果我想传递一个数组,我将如何定义 C++ 函数以便我可以做这样的事情......
会不会是这样的...
很难解决,因为当它不起作用时,呼叫似乎默默地失败了。
bit - qubit和bit的区别可以用一个简单的代码例子来解释吗?
我知道你可以玩量子计算的唯一地方是谷歌量子游乐场和ibm 的量子体验。虽然第一个使用 qscript 和第二个 qasm 语言(易于学习),但它们的用法仍然与常规编程没有太大区别(除了少数特定功能)。这是维基百科的解释:
量子比特与经典比特有一些相似之处,但总体上却大不相同。量子比特的测量有两种可能的结果——通常是 0 和 1,就像比特一样。不同之处在于,虽然一个位的状态是 0 或 1,但一个量子位的状态也可以是两者的叠加。可以在一个量子位中完全编码一个位。然而,一个量子位可以保存更多信息,例如使用超密集编码最多两个位。
对于具有 n 个组件的系统,在经典物理学中对其状态的完整描述只需要 n 位,而在量子物理学中则需要 2^n - 1 个复数。
哪个或多或少很清楚。但是如何用代码示例来显示呢?
qt - 如何在 QScriptEngine 中使用 QVector
第一个:Qt 4.7
我想访问一个QVector<double>
脚本内部,它是一个对象成员函数的返回值。即,我已将对象传递给脚本,它具有属性 set 和 get 函数,它们分别具有QVector<double>
参数/返回值。我做了以下事情:
在它自己的标题中:
当我设置引擎时:
我的对象 ( CalcDataVector
) 具有以下公共插槽(_value
是受保护的成员):
我将对象发送到脚本引擎,如下所示:
我想访问脚本内 v 中的向量:
其中,由于我是 qscript 的新手,可能有一个非常明显的语法错误。请赐教!
我收到语法错误:
语法错误:解析错误。
我可以用其他方式操纵我发送的对象,所以我知道它就在那里。
编辑:我还发送与输入相同类型的输出变量。我可以执行以下操作:
但不是
c++ - 在 Qt 安装程序框架中禁用本机 Next 按钮
我必须通过 installscript.qs 文件在我的自定义页面上禁用标准的下一步按钮。
我可以通过 .qs 脚本禁用我自己的按钮(我在 .ui 文件中创建的),如下所示:widget.myButton.setEnabled(false);
这个人表明本机按钮表示为枚举,我不能以同样的方式禁用它们。
控制器脚本手册页显示了与本机按钮的一些交互。喜欢gui.clickButton(buttons.NextButton)
。我浏览了整个 gui object man 并没有发现任何有用的东西。
Qt 安装程序框架有一个本机许可证检查页面,其中包含我需要的下一步按钮逻辑,但我没有找到任何手动执行此操作的示例。(许可证页面之所以有效,是因为它的默认许可证页面和我理解的框架内的逻辑)。
最后我找到了对我有用的 isComplete() 方法,但它适用于 C++ API 而不是 qs。那么如何通过 installscript.qs 文件禁用本机按钮?
c++ - 如何返回 QList来自 Qt 脚本中使用的基于 QObject 的类方法
我正在 Qt 中开发一个使用 QScript 模块的应用程序。我正在处理的类是从 QObject 派生的,因此它将是“可编写脚本的”。其中一种方法应该返回一个双精度值列表(QList)。当我使用类的一个实例创建一个全局脚本对象时,使用 engine.newQObject(class_instance)),我可以完美地访问脚本对象的许多方法,表明该过程正在运行。我可以从脚本中调用一个返回双精度的方法,但应该返回 QList 的函数保持沉默。
知道如何实现 C++ 类的方法,以便它忠实地返回双值列表吗?
代码:
类代码(QCustomPlot 派生自 QWidget)
函数旨在返回一个双精度值列表:
(声明为 Q_INVOKABLE)
当我运行该函数时,我在脚本控制台中得到的只是:QVariant(QList)
我制作了以下测试函数,它返回一个表示双值列表的 QStringList:
(声明为 Q_INVOKABLE)
当我运行该函数时,脚本控制台有效地显示带有逗号分隔的双精度值的文本。
我还编写了一个返回单个双精度值的简单函数,它也可以工作。另一个测试函数返回一个QList<int>
作品。
QList<double>
所以我猜,和相应的脚本值之间没有自动转换。看起来我需要一种方法让 QScriptEngine 实例知道如何转换QList<double>
为 Qt Script 变量。
谢谢
qt - QJSEngine 全局函数
目前有什么方法可以使全局功能在QJSEngine
?我正在尝试将现有应用程序从旧版本移植QScriptEngine
到,QJSEngine
但我找不到任何方法。
当我检查 Qt 的源代码如何定义“print()”函数时,他们正在使用内部QV4::Score/ScoreObject
类来做到这一点。
我还找到了关于如何在QQmlApplicationEngine
via中“模拟”它的答案,rootContext()->setContextObject
但这也不适用于QJSEngine
.
QJSEngine
不幸的是,我们需要将它迁移到QScriptEngine
.
谢谢