C++ 如何在Qt脚本中克隆函数?
我想将Qt脚本数据发送到另一个线程。为此,我必须复制数据,因为C++ 如何在Qt脚本中克隆函数?,c++,qt,qt5,qtscript,C++,Qt,Qt5,Qtscript,我想将Qt脚本数据发送到另一个线程。为此,我必须复制数据,因为QScriptValue对象引用javascript对象,而不是包含它们 如何克隆函数?这不是很好,将条目克隆到子条目: subEntry = target.engine()->evaluate("("+entry.toString()+")"); 你说“这不是很好”是什么意思?你希望改进什么?为了更好,您需要在QtScript模块的代码本身中实现函数克隆。也就是说,您需要修补Qt。@KubaOber好吧,例如,对于本机函数,
QScriptValue
对象引用javascript对象,而不是包含它们
如何克隆函数?这不是很好,将条目
克隆到子条目
:
subEntry = target.engine()->evaluate("("+entry.toString()+")");
你说“这不是很好”是什么意思?你希望改进什么?为了更好,您需要在
QtScript
模块的代码本身中实现函数克隆。也就是说,您需要修补Qt。@KubaOber好吧,例如,对于本机函数,上述操作失败。它也不会克隆函数捕获的作用域,但我想我可以不克隆它。但是如果有任何绑定到对象(Function.prototype.bind
)也不起作用。这需要一个Qt补丁。有没有可能使用现代的QJSEngine
?在那里实施AFAICT比较容易。你说的“这不是很好”是什么意思?你希望改进什么?为了更好,您需要在QtScript
模块的代码本身中实现函数克隆。也就是说,您需要修补Qt。@KubaOber好吧,例如,对于本机函数,上述操作失败。它也不会克隆函数捕获的作用域,但我想我可以不克隆它。但是如果有任何绑定到对象(Function.prototype.bind
)也不起作用。这需要一个Qt补丁。有没有可能使用现代的QJSEngine
?在那里实施AICT会更容易。