Получить уведомление, когда 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;
}
}
}
не идеально, но достаточно хорошо