Я пытаюсь использовать QSortFilterProxyModel с QStandardItemmodel, но filterAcceptedRows () не обновляет представление.
Строки правильно отфильтрованы в функции filterAcceptedRows (), но представление не обновлено.Он по-прежнему отображает все строки.Ниже вы можете найти код, который я уже пробовал, может кто-нибудь сказать мне, что я что-то упустил здесь
Это код в QDialog.
m_modelApp = new QStandardItemModel();
m_proxyApp = new ProxyModelApp();
m_proxyApp->setSourceModel(m_modelApp);
m_lstApp->setModel(m_modelApp);
Вот как я добавляю данныек модели.
QStandardItem *item1 = new QStandardItem();
QStandardItem *item2 = new QStandardItem();
QStandardItem *item3 = new QStandardItem();
QStandardItem *item4 = new QStandardItem();
QStandardItem *item5 = new QStandardItem();
QStandardItem *itemCheck = new QStandardItem();
item1->setData(l_sRefProduitSW,Qt::DisplayRole);
item2->setData("To Define",Qt::DisplayRole);
item3->setData(app.GetRefApp(),Qt::DisplayRole);
item4->setData(app.GetRefIdentApp(),Qt::DisplayRole);
item5->setData(app.GetRefFNRApp(),Qt::DisplayRole);
itemCheck->setCheckable(true);
if(m_xRefBe->GetListeAppBE().contains(app))
itemCheck->setCheckState(Qt::Checked);
else
itemCheck->setCheckState(Qt::Unchecked);
listItems<<itemCheck<<item1<<item2<<item3<<item4<<item5;
m_modelApp->appendRow(listItems);
Один из фильтров в ProxyModelApp.
void ProxyModelApp::setRefLibApp(QString refLibApp){
if(m_refLibApp != refLibApp)
m_refLibApp = refLibApp;
invalidateFilter();
}
Хотелось бы узнать, почему после успешной фильтрации функция filterAcceptedRows () не обновляетсямнение.
Спасибо.