1
4
我考虑过的一个相当难看的方法是使用addtojavascriptwindowobject将要返回的对象以随机名称放入window对象,然后让slot返回对象实例的名称:
可以编写JS来检查返回值是否为字符串,如果是,则从窗口抓取对象。
有点难看,但会让我过得去,直到有更好的方法出现。未来的qt版本将统一脚本支持,因此它都基于webkit中的javascriptcore,所以希望这将改进! |
2
2
可以将对象指针分配给QObjult*并返回该对象指针。
这对我在linux上的qt webkit端口是有效的。 |
3
1
QtScript有原型的概念,它允许你为脚本值创建一个C++原型。我们正在研究我们可以用JavaScript内核来桥接QtScript。 应该 结果也可能使用webkit的javascript环境中的原型; http://doc.trolltech.com/4.5/qtscript.html#making-use-of-prototype-based-inheritance |
4
1
尝试将新对象返回为qobject*而不是myobject*。如果你只是和QtScript一起工作,那么你可以打电话 qScriptRegisterMetaType 定义一些代码来处理将myobject*s转换为qscriptvalues(或qvariants)的过程,但是对于qtwebkit中使用的javascript引擎似乎没有等效的代码。 令人恼火的是,这意味着向webkit公开您的内部对象模型将涉及使用一组单独的代理函数将对象指针转换为qobject*s,或者使用某种适配器类来执行相同的操作。 |
5
0
这个答案是基于保罗的答案,但有点简单。为Qt5.3测试和工作。您需要一个工厂来实例化一个对象,然后返回
这样,您可以从JavaScript中执行以下操作:
在这一点上,你已经
在这一点上,您可以使用
|
DELI · 如何在QML中修改TableView数据? 2 年前 |
joshp · Pysides6列从设置向后跨距 2 年前 |
MingMing · C++在MaCOS 11上显示权限对话框 2 年前 |
K.Mulier · PyQt5:如何将QObject移动到主线程? 6 年前 |