我在C++中有一个C++,它在QML应用程序中实例化。如果我的c++的宽度属性发生变化,我希望在QQuickItem侧触发一个自定义函数。
在QML中,我将执行onWidthChanged:{ my code}。我怎样才能在c++方面做到这一点?
发布于 2018-04-05 00:46:57
如果要响应自定义QQuickItem
中的大小更改,请重新实现geometryChanged()
函数。这样做的好处是不为每个项目创建额外的信号槽连接,这是连接到widthChanged()
/heightChanged()
信号时所必需的。
这里就是在Quick 2中重新实现它的一个例子。
发布于 2018-04-05 00:49:01
width
是具有widthChanged
信号的qproperty
,因此您可以将该信号连接到某个时隙。
class FooItem : public QQuickItem
{
Q_OBJECT
public:
FooItem(QQuickItem *parent=Q_NULLPTR): QQuickItem(parent){
connect(this, &FooItem::widthChanged, this, &FooItem::onWidthChanged);
}
Q_SLOT void onWidthChanged(){
qDebug()<<width();
}
};
https://stackoverflow.com/questions/49667771
复制相似问题