Сортировка QTableView обновляется медленно

у меня есть QTableView с QAbstractTableModel дочерний экземпляр, установленный в качестве модели. Ребенок реализует void sort(int columnt, Qt::SortOrder order), Я поставил QTableView::sortEnabled(bool) в true так что я могу отсортировать свою таблицу, нажав на заголовок столбца. Когда я нажимаю на заголовок, сортировка заканчивается почти мгновенно, но таблица обновляется только тогда, когда я перемещаю мышь в область таблицы. Нужно ли излучать сигнал от sort()? Или вызовите функцию для обновления QTableView?

0

Решение

Немного сложно: сделать испускание dataChanged (QModelIndex (), QModelIndex ()); после сортировки.

Хочу отметить, что передача неверных индексов не документирована, но я часто использую это в своих проектах. Это работает хорошо, и это намного быстрее, чем передача допустимых индексов с большими диапазонами, потому что вызывает обновление только видимой области. Но у этого могут быть некоторые глюки с тяжелыми делегатами / пользовательскими виджетами.

Я тестировал на QTreeView — обновление диапазона из 10 тыс. Элементов занимает около 1,5 сек (отправка данных с измененными индексами). И когда я использую недопустимые индексы, сигнал обрабатывается неумышленно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]