Seite 1 von 1

Redundante Einträge aus QListView entfernen

Verfasst: 24. April 2007 13:58
von TimeForGold
Mahlzeit,

ich habe eine QListView mit einem Model dahinter. Ich habe mir eine Methode geschrieben, die alle redundanten Einträge in einer QListView versteckt. Mit einer ListView funktioniert es, aber alle weiteren ListViews, die die gleiche Methode verwenden funktioniert es nicht.

Gibt es in der Bibliothek eine Methode, die das schon kann? Ich habe keine gefunden. Ansonsten anbei der Code meiner Methode:


Code: Alles auswählen

void RMGAnalyse::hideRedundantItems (QListView* pcListView, int iModelColumn)
{
	QModelIndex    cModelIndex;
	QVariant       cVariant;
	QString        cString;
	QList<QString> cSearchList;
		
	for (int iModelRow = 0; iModelRow < logModel_p->rowCount (); iModelRow++)
	{				
		cVariant = logModel_p->data (logModel_p->index (iModelRow, iModelColumn),Qt::DisplayRole);
		cString  = cVariant.toString ();
		
		if (cSearchList.contains (cString))
		{
			pcListView->setRowHidden (iModelRow, true);
		}
		else
		{
			cSearchList.append (cString);
		}		
	}
}
Danke, schon mal für die Unterstützung.

Verfasst: 24. April 2007 21:04
von upsala
Setz halt ein QSortFilterProxyModel zwischen dein Model und deiner View. In diesem überschreibst du dann

Code: Alles auswählen

bool QSortFilterProxyModel::filterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const 
um Duplikate zu entfernen.