Russian Qt Forum

Qt => Model-View (MV) => Тема начата: voronElf от Декабрь 15, 2009, 08:02



Название: при перезагрузке модели QTableView сбрасывает настройки интерфейса
Отправлено: voronElf от Декабрь 15, 2009, 08:02
Доброго времени суток.
Ситуация такова: есть класс - поставщик данных CTovData хитрой структуры (инфа о более чем 20 000 товаров). на основе данных этого класса работает самописная табличная модель CTovTbModel (наследована от QAbstractTableModel). На эту модель вешается QSortFilterProxyModel , которая идет в QTableView. Во вьюхе юзверь может скрывать столбцы которые ему не нужны в данный момент (использую setColumnHidden(...) ).  CTovTbModel часто перегружается полностью (оповещение об этом reset() ), скрытые столбцы при этот сотаются скрытыми. Все нормально работало в Qt4.3.4.

Я перевел программку на Qt4.5.2, выскочил косяк - при пезагрузке CTovTbModel во вьюхе скрытые столбцы показываются, притом не при каждой перезагрузке (на 3-й, 5-й, закономерности не нашел).

вместо reset() попытался использовать  emit layoutChanged(); - не помогло.

Выяснил, что "виновата" сортировка QSortFilterProxyModel: если не сортировать, косяка нет, отсортируешь по столбцу - проявляется

Кто-нить сталкивался или может будут мысли по этому поводу ?

P.S. нужен код - выложу, просто много его.