Могу ли я получить все экземпляры некоторого класса в Qt?

Я реализовал QAbstractItemModel а также QSortFilterProxyModel с ним в качестве исходной модели. у меня есть такой itemModel экземпляр и несколько filterModel экземпляров. В каждом filterModel У меня есть переменная, значение которой рассчитывается на основе отфильтрованных данных из itemModel, когда itemModel воссоздан (все элементы удалены, а новые вставлены обратно) значение этой переменной должно быть установлено в значение по умолчанию (или просто пересчитано после выполнения фильтрации).

Проблема в том, что у меня нет списка указателей на filterModel экземпляры для повторения по ним. Конечно, я могу создать такой статический список в конструкторе. Но, вероятно, MOC сделал это вместо меня и сохранил такой список внутри QMetaObject этого класса?

0

Решение

Ваша реализация прокси фильтра не работает. Прокси-серверы полностью проинформированы о каждом изменении модели — вот почему модели QObjectи излучать сигналы изменения! Ничто не мешает вам изменить «некоторую переменную» соответствующим образом, когда исходная модель показывает, что она изменилась.

Вы должны думать о своей «некоторой переменной» как о зависимости от некоторых данных (и структуры!) Из исходной модели. Каждый раз, когда исходная модель указывает на изменения в зависимых данных или структуре, ваш прокси-сервер должен пересчитать значение или, по крайней мере, установить флаг, чтобы при необходимости значение могло быть вычислено заново.

0

Другие решения


По вопросам рекламы [email protected]