Russian Qt Forum

Qt => Model-View (MV) => Тема начата: rellanium от Ноябрь 14, 2014, 11:46



Название: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?
Отправлено: 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. Надеюсь на вашу помощь, уважаемые гуру!  


Название: Re: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?
Отправлено: Пантер от Ноябрь 14, 2014, 11:59
Ты бы лучше кот своей прокси привел.


Название: Re: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?
Отправлено: rellanium от Ноябрь 14, 2014, 12:10
Ты бы лучше кот своей прокси привел.

используется стандартный класс QSortFilterProxyModel, ничего не переопределял.


Название: Re: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?
Отправлено: rellanium от Ноябрь 17, 2014, 11:01
Никто не сталкивался?  :o


Название: Re: QSortFilterProxyModel в Qt5 медленнее, чем в Qt4 ?
Отправлено: vipet от Февраль 18, 2015, 17:55
сравни исходники из Qt4 и Qt5 и поделись с нами выводами :)