Всем привет! Делаю поиск с помощью 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. Надеюсь на вашу помощь, уважаемые гуру!