crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Медленное скрытие строк в QTableView
RazrFalcon
  опции профиля:
сообщение 29.3.2012, 0:09
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


20000 раз сделать hideRow(i); и моя прога повисает на секунд 15.
Как можно ускорить скрытие строк, ну или изменить. Так как мне нужно отображать только несколько строк из модели, но вся модель находится в tableview
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
sidsukana
  опции профиля:
сообщение 29.3.2012, 16:32
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

Спасибо сказали: 10 раз(а)




Репутация:   2  


В потоке
for (quint32 i = 0; i < m_recordCount; i++)
    {
        QStringList record = model->getRecord(i);

        if (searchValue.isEmpty())
        {
            QApplication::postEvent(m_form, new SendHiden(0, i, false));
            continue;
        }

        if (isText)
            QApplication::postEvent(m_form, new SendHiden(0, i, !record.at(index).contains(searchValue, Qt::CaseInsensitive)));
        else
            QApplication::postEvent(m_form, new SendHiden(0, i, record.at(index) != searchValue));

        QApplication::postEvent(m_form, new ProgressBar(i, BAR_STEP));
    }


В форме (евент событие принимаю)

case SendHiden::TypeId:
        {
            SendHiden* m_ev = (SendHiden*)ev;
            tableView->setRowHidden(m_ev->GetValue(), m_ev->isOk());
            return true;
        }
        break;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Медленное скрытие строк в QTableView   29.3.2012, 0:09
- - sidsukana   У меня даже больше строк надо было скрыть. В поток...   29.3.2012, 6:00
|- - RazrFalcon   Дык поток - это понятно. Только вроде как не совет...   29.3.2012, 8:27
|- - sidsukana   Цитата(RazrFalcon @ 29.3.2012, 10:27) Дык...   29.3.2012, 11:30
|- - RazrFalcon   У меня сама проверка занял 5мс. А вот именно hideR...   29.3.2012, 12:25
- - DOGG   Если модель SQL, то можно использовать setFilter(Q...   29.3.2012, 9:44
- - sidsukana   Standard он же тяжелый до задницы, я как-то тут уж...   29.3.2012, 12:45
- - RazrFalcon   C QAbstractTableModel так же медленно скрывает стр...   29.3.2012, 14:30
- - Гость   Скрывает быстро, рисует медленно, как вариант, кэш...   29.3.2012, 15:01
|- - RazrFalcon   Цитата(Гость @ 29.3.2012, 15:01) Да и кст...   29.3.2012, 15:36
- - sidsukana   В потоке for (quint32 i = 0; i < m_recordC...   29.3.2012, 16:32
- - RazrFalcon   Спасибо. Решил через QSortFilterProxyModel, в 2-е ...   29.3.2012, 17:27
- - sidsukana   Хотел кстати про нее еще сказать) мощная штука, че...   29.3.2012, 19:09
- - Litkevich Yuriy   иногда может пригодится запрет перерисовки виджето...   1.4.2012, 18:09


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 4:40