我在文档中搜索高低,但没有找到任何关于此的内容。无论如何,我创建的QML元素如果由于其更改而需要重新绘制其中一个孩子,则会收到通知。该项目是否会发送父母可以连接/收听的信号或事件。优选地,当项目被标记为“脏”并且应该再次渲染时将被发射,但是像onPropertyChange这样的信号也将起作用。
实施例
MyQmlItem {
Rectangle {
width: 50; height: 60
color: "blue"
Text {
text: "hello world"
}
}
}
如果某些代码例如更改了Rectangle的颜色,我希望MyQmlItem得到有关此更改的通知。
答案 0 :(得分:0)
FWIIW我设法找到了上面可接受的解决方案。我在MyQmlItem类中添加了一个布尔属性“isDirty”,当它设置为true时会发出一个信号。然后每个孩子需要设置它,如果它进行需要重绘的更改,则上面的QML变为
MyQmlItem {
id: "topItem"
Rectangle {
width: 50; height: 60
color: "blue"
Text {
text: "hello world"
onTextChange: {
topItem.isDirty = true;
}
}
}
不完美,但足够好