Russian Qt Forum
Ноябрь 24, 2024, 11:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSortFilterProxyModel::index() возращает невалидный индекс  (Прочитано 4886 раз)
proton
Гость
« : Ноябрь 02, 2009, 09:12 »

Отнаследовал EventProxyModel от QSortFilterProxyModel, релиализовал функцию filterAcceptsRow():
Код:
bool EventProxyModel::filterAcceptsRow (int source_row, const QModelIndex & source_parent) const
{
QModelIndex source_index = index(source_row, 2, source_parent);
int iid = data(source_index, Qt::UserRole).toInt();
if (iid!=my_id) return false;
        return true;
}

Сначала все работает нормально, проблема в том, что когда строка уже скрыта, то index(source_row, 2, source_parent) возвращает пустой индекс.

Где мой косяк?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Ноябрь 02, 2009, 10:24 »

ну модельный индекс запросто может быть недействительным (invalid), просто проверяй этот момент и всё
Код
C++ (Qt)
bool QModelIndex::isValid () const
« Последнее редактирование: Ноябрь 02, 2009, 10:27 от lit-uriy » Записан

Юра.
proton
Гость
« Ответ #2 : Ноябрь 10, 2009, 23:53 »

ну модельный индекс запросто может быть недействительным (invalid), просто проверяй этот момент и всё
Код
C++ (Qt)
bool QModelIndex::isValid () const
Ну естественно он недействителен, в этом, как раз и проблема, что когда строка скрыта индекс не действителен.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Ноябрь 11, 2009, 02:58 »

virtual QModelIndex mapFromSource ( const QModelIndex & sourceIndex ) const
virtual QModelIndex mapToSource ( const QModelIndex & proxyIndex ) const

Здесь не помогут? - наверное source_row и source_paren - имеются ввиду исходные индексы относительно уже FilterProxyModel а не исходной модели в которой индексы этих строк все еще валидные... но может я и не прав...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.