QQuickItem需要更新时收到通知

时间:2016-10-13 14:51:19

标签: qt

我在文档中搜索高低,但没有找到任何关于此的内容。无论如何,我创建的QML元素如果由于其更改而需要重新绘制其中一个孩子,则会收到通知。该项目是否会发送父母可以连接/收听的信号或事件。优选地,当项目被标记为“脏”并且应该再次渲染时将被发射,但是像onPropertyChange这样的信号也将起作用。

实施例

 MyQmlItem {
     Rectangle {
          width: 50; height: 60
          color: "blue"
          Text {
              text: "hello world"
          }
     }
}

如果某些代码例如更改了Rectangle的颜色,我希望MyQmlItem得到有关此更改的通知。

1 个答案:

答案 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;
          }
      }
 }

不完美,但足够好