10 / 8 / 4
Регистрация: 24.01.2017
Сообщений: 111
1

Как обновить таблицу после фильтра?

06.07.2018, 13:35. Показов 656. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++ (Qt)
1
2
3
4
5
6
7
void MainForm::viewFilterActivateAction()
{
        ........
    m_filterModel->updateFilterRow();
    m_tableView->viewport()->update();
        ........
}
вначале активирую фильтр, дальше обновляется кэш данных, где устанавливается тру/фолс видимый элемент или не видимый

в самом фильтре:
C++ (Qt)
1
2
3
4
bool SortFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex & sourceParent) const
{
    return m_records->Rows(sourceRow).Visible;
}
надо ли обновлять исходную модель? вызывать
begin/endUpdate()

C++ (Qt)
1
2
3
4
void SortFilterProxyModel::updateFilterRow()
{
    invalidateFilter();
}
при обновлении вьюпорта остаются пробелы:
допустим в не отсортированном виде было 90к записей
после
invalidateFilter(); // стало видимых записей штук 200
m_tableView->viewport()->update();

таблица не уменьшила роукаунт(остались пробелы, а все строки которые видимые, слепила подряд )
а при вызове begin/endUpdate()
фильтрация и отображение занимает довольно долгое время (секунд ~8 при ~90к записей)

так же, есть идея отказаться от прослойки proxy модели и сделать все в исходной. Насколько это увеличит производительность?

Добавлено через 15 минут
поставил ресет модель , вместо вьюпорта
C++ (Qt)
1
2
3
4
5
6
void MainForm::viewFilterActivateAction()
{
    m_filterModel->updateFilterRow();
    m_filterModel->beginUpdate();
    m_filterModel->endUpdate();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2018, 13:35
Ответы с готовыми решениями:

Как обновить таблицу после её заполнения?
Сабж, пробовал сразу после добавления вставить ADOTable1->Requery; ADOTable1->Close; но что...

Datatables сортирует таблицу только после применения фильтра
Здравствуйте, такая проблема.. я использую datatables для сортировки своей таблицы, все работает,...

Как обновить таблицу?
Есть БД rk в ней таблица dbo.RDRBP. Есть ещё БД rk_new и в ней точно такая же таблица. Как обновить...

Как обновить таблицу
Вот я добавил в базу значение, но в таблице оно не отобразилось. Как сделать кнопку обновления? ...

0
06.07.2018, 13:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2018, 13:35
Помогаю со студенческими работами здесь

Как обновить таблицу не закрывая форму?
Подскажите, как обновить, не закрывая форму, таблицу (обычная таблица, непрограммируемая). Когда...

Entity framework 4.1: как обновить таблицу
На основе модели entity framework создал базу данных и в ней таблицу, после изменения модели,...

JSP: Как обновить таблицу по нажатию кнопки?
Есть простое приложение. Контроллер организован так: @Controller public class MainController {...

Как правильно обновить таблицу jtable из другого jframe
Добрый день, проблема такая, у меня есть jframe package Forms; import javax.swing.*; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru