QT / QML: можно перезагрузить модель в Listview, но не делегировать элемент?

#qt #listview #qml

#qt #listview #qml

Вопрос:

У меня есть Listview, в котором используется модель из XmlListModel. Все работает нормально, но когда я перезагружаю модель с помощью таймера, элемент делегирования тоже перезагружается. Чтобы было ясно, я бы перезагрузил данные в элементе делегирования, но не сам элемент.

Легко ли обеспечить этот результат?

Спасибо за вашу помощь.

Комментарии:

1. Почему? Чего вы пытаетесь достичь? Можете ли вы показать нам свой код? Я думаю, что разумно прислушаться к совету «Состояние никогда не должно храниться в делегате». — qt-project.org/doc/qt-5/qml-qtquick-listview.html#delegate-prop

2. Мой код настолько уродлив, что я не могу показать здесь =) Это просто всплывающее окно Listview с помощью XmlListModel. В делегате я создал некоторый прямоугольник и некоторую метку. Значения меток заполняются ролями XmlListModel. И когда я нажимаю на прямоугольник, цвет меняется. У меня есть таймер, который перезагружает XmlModel каждые минуты. Я бы сохранил цвет своего прямоугольника при перезагрузке XmlModel, но я также хочу обновить данные в Label. Это кажется вам более понятным? Может быть, ListView не подходит для использования, может быть, мне следует использовать Repeater. Что вы думаете? Спасибо.