我可以像Component一样为所有属性创建自己的附件吗?
Item{
Component.onCompleted : {} // Component is attached to everyone Items
}
最佳答案 您可能无法将属性附加到未创建的项目或组件.但是你为什么要这么做呢?
相反,您可以考虑使用信号和全局属性.
对于可以从任何位置访问的全局属性,可以设置声明性视图的根上下文的上下文属性.
即,
QmlApplicationViewer viewer;
MyPropertyClass myProp;
viewer->rootContext()->setContextProperty("MyPropClass", &myProp);
现在,在您的QML文件中,您可以访问此类的属性
Rectangle {
Text {
text: MyPropClass.getMyPropText()
}
MouseArea {
onClicked: { MyPropClass.text = "Clicked" }
}
}
这将从MyPropertyClass调用Q_INVOKABLE方法getMyPropText().和Q_PROPERTY’文本’可以在发出一些信号时设置.
这适合你需要吗?