Получить уведомление, когда QQuickItem потребуется обновление

Я нашел высокий и низкий поиск в документации, но ничего не нашел по этому поводу. В любом случае, созданный мною элемент QML может получать уведомления, если один из его дочерних элементов необходимо перерисовать из-за изменений в нем. Будет ли элемент отправить сигнал или событие, которое родитель может подключить / прослушать. Желательно, чтобы он генерировался, когда элемент помечен как "грязный", и должен отображаться снова, но сигнал типа onPropertyChange также будет работать.

пример

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

Если какой-либо код, например, меняет цвет прямоугольника, я бы хотел, чтобы MyQmlItem был уведомлен об этом изменении.

1 ответ

FWIIW мне удалось найти приемлемое решение выше. Я добавил булево свойство "isDirty " в класс MyQmlItem, которое выдает сигнал, когда оно установлено в значение true. Затем каждый ребенок должен установить это, если он вносит изменения, которые необходимо перерисовать, QML выше становится

MyQmlItem {
   id: "topItem"
   Rectangle {
      width: 50; height: 60
      color: "blue"
      Text {
          text: "hello world"
          onTextChange: {
              topItem.isDirty = true;
          }
      }
 }

не идеально, но достаточно хорошо

Другие вопросы по тегам