我在文档中到处搜索,但没有找到任何关于这方面的东西。如果我创建的QML元素的一个子元素由于更改而需要重新绘制,是否可以通知它。该项目是否会发送父母可以连接/监听的信号或事件。优选地,它将在项目被标记为“脏”时发出,并且应该再次呈现,但像onPropertyChange这样的信号也可以工作。
示例
MyQmlItem {
Rectangle {
width: 50; height: 60
color: "blue"
Text {
text: "hello world"
}
}
}如果一些代码改变了矩形的颜色,我希望通知MyQmlItem这个改变。
发布于 2016-10-17 23:06:09
FWIIW我设法找到了一个可以接受的解决方案。我在MyQmlItem类中添加了一个布尔属性"isDirty“,当它被设置为true时会发出一个信号。然后,每个子级都需要设置它,如果它进行了需要重绘的更改,则上面的QML将变为
MyQmlItem {
id: "topItem"
Rectangle {
width: 50; height: 60
color: "blue"
Text {
text: "hello world"
onTextChange: {
topItem.isDirty = true;
}
}
}不完美,但已经足够好了
https://stackoverflow.com/questions/40024366
复制相似问题