QAbstractItemModel setRowHidden |
Здравствуйте, гость ( Вход | Регистрация )
QAbstractItemModel setRowHidden |
FakeMoNEy |
13.12.2012, 19:21
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 27.11.2012 Пользователь №: 3612 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте, я наследуюсь от QAbstractItemModel заполняю большую таблицу (QTableView2млн строк показывает их мнгновенно) и мне нужно выборочно скрывать показывать строки вот так
я использую SetRowHidden но это очень медленно, просто показать строки показывает мгновенно а если скрывать то минут 5-10 ждать приходиться, может есть какие то варианты? fiterAcceptsRow не понял как это решить. |
|
|
RazrFalcon |
13.12.2012, 21:01
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Только через фильтр.
Можно просто через setFilterRegExp ( const QRegExp & regExp ) задав перед этим setFilterKeyColumn ( int column ) или наследуемся от QSortFilterProxyModel, предопределяем функцию filterAcceptsRow и в ней пишем нужное условие:
|
|
|
FakeMoNEy |
17.12.2012, 21:28
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 27.11.2012 Пользователь №: 3612 Спасибо сказали: 0 раз(а) Репутация: 0 |
Только через фильтр. Можно просто через setFilterRegExp ( const QRegExp & regExp ) задав перед этим setFilterKeyColumn ( int column ) или наследуемся от QSortFilterProxyModel, предопределяем функцию filterAcceptsRow и в ней пишем нужное условие:
А когда вызываеться fiterAcceptsRow? Я так понял она все строки перебирает, а когда вызывается? |
|
|
RazrFalcon |
18.12.2012, 13:03
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
fiterAcceptsRow вызывает сама модель, обычно после setFilterRegExp() и подобных
|
|
|
Litkevich Yuriy |
19.12.2012, 18:57
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 0:43 |