继承QWidget的Javascript对象
我正在 Javascript 和 Qt 中做一些事情,出于我的目的,我需要一个继承 QWidget 的 javascript 对象。到目前为止,我已经尝试了以下操作:
function Test()
{
QWidget.call(this);
this.button = new QPushButton("test");
this.layout().insertWidget(1,this.button);
this.button.clicked.connect(this.slot);
}
Test.prototype.slot = function()
{
print("Test button clicked");
}
Test.prototype = new QWidget();
我从类“Test”实例化对象,并通过调用 show()
方法,我得到了小部件:
var testVariable = new Test();
testVariable.show();
但是,我收到以下解释器错误:
错误:运行/评估中:类型错误: Function.prototype.connect:目标是 不是一个函数
如果我更改行 this.button.clicked.connect(this.slot);
来调用如下定义的静态方法:
this.button.clicked.connect(Test.slot);
...
...
Test.slot = function () { /* code */ }
程序运行良好,但静态方法是禁忌。我不希望任何人调用 slot()
除了实例化对象之外。
这张照片有什么问题吗?有人有过 Javascript 对象继承 Qt 对象的经验吗? 提前致谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我想我可能会明白这一点。所以这里的神奇之处在于:
需要在构造函数之前,构造函数也必须采用 “parent”参数也是如此。最后但并非最不重要的一点是,在
connect()
中,有两个参数:第一个是哪个类包含插槽(在我的例子中是this
)和插槽的名称与this
指针。因此,考虑到这一点,上面的代码将如下所示:
这是它可能关注的人。
Ok I think I might figured this out. So the magic here is:
needs to be before the constructor, also the constructor has to take "parent" argument too. And last but not least, in
connect()
there are two arguments: first is which class contains the slot (in my case it isthis
) and the name of the slot withthis
pointer.So, having this in mind, the above code will look like this:
This is to whom it may concern.