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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?  (Прочитано 4067 раз)
rellanium
Гость
« : Ноябрь 14, 2014, 11:46 »

Всем привет! Делаю поиск с помощью QSortFilterProxyModel  по нескольким столбцам следующим образом:

Код:
                model->setQuery(queryStr);

if (model->lastError().isValid())
QMessageBox::about(0,"",queryStr+"\n\n"+ model->lastError().text());

model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Код каталога"));
model->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наименование"));
model->setHeaderData(3, Qt::Horizontal, QString::fromLocal8Bit("Артикул"));
model->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("Цвет"));
model->setHeaderData(5, Qt::Horizontal, QString::fromLocal8Bit("Ед. измерения"));


        proxyModel = new QSortFilterProxyModel;
proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel->setSourceModel(model);
proxyModel->setFilterKeyColumn(1);
   proxyModel2 = new QSortFilterProxyModel;
proxyModel2->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel2->setSourceModel(proxyModel);
proxyModel2->setFilterKeyColumn(3);
   proxyModel3 = new QSortFilterProxyModel;
proxyModel3->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel3->setSourceModel(proxyModel2);
proxyModel3->setFilterKeyColumn(2);
   proxyModel4 = new QSortFilterProxyModel;
proxyModel4->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel4->setSourceModel(proxyModel3);
proxyModel4->setFilterKeyColumn(4);

ui.tableView->setModel(proxyModel4);

буквально на днях решились перейти на qt5. помимо других исправимых несоответствий выяснилось, что поиск QSortFilterProxyModel  работает раза в два медленнее по сравнению с qt4. Количество строк в моделе ~8000. Надеюсь на вашу помощь, уважаемые гуру!  
« Последнее редактирование: Ноябрь 14, 2014, 12:09 от rellanium » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 14, 2014, 11:59 »

Ты бы лучше кот своей прокси привел.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
rellanium
Гость
« Ответ #2 : Ноябрь 14, 2014, 12:10 »

Ты бы лучше кот своей прокси привел.

используется стандартный класс QSortFilterProxyModel, ничего не переопределял.
Записан
rellanium
Гость
« Ответ #3 : Ноябрь 17, 2014, 11:01 »

Никто не сталкивался?  Шокированный
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #4 : Февраль 18, 2015, 17:55 »

сравни исходники из Qt4 и Qt5 и поделись с нами выводами Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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