Есть ли способ получить список видимых в данный момент элементов в QAbstractItemView
? И, если возможно, получать какие-либо уведомления об изменении этого списка.
Upd: я спрашиваю именно про QAbstractItemView
или QTreeView
с непростым строением, а не про QTableView
.
Upd2: я реализую древовидную модель с флажками. Я хочу следующее поведение (то же самое для проверки/снятия):
- Если один из флажков отмечен - тогда все дочерние элементы должны быть проверены
- Если все дочерние флажки отмечены, то родительский флажок также должен быть установлен. И то же самое для родителя родителя и так далее...
Состояние проверки отслеживается/изменяется внешним источником данных, поэтому мне нужен механизм для обновления всех измененных дочерних/родительских элементов. dataChanged
сигнала мне недостаточно, потому что очень сложно построить список всех измененных QModelIndex
для обновления. Да и не нужно, потому что все свежие данные будут браться из QAbstractItemModel::data
.
Я нашел следующий грязный хак для обновления всех элементов: emit dataChanged( QModelIndex(), QModelIndex() );
, но он не задокументирован для недопустимых индексов.
Итак, мне нужен способ заставить все видимые элементы перерисовывать их содержание со свежими данными.