Redundante Einträge aus QListView entfernen

Alles rund um die Programmierung mit Qt
Antworten
TimeForGold
Beiträge: 31
Registriert: 28. Januar 2007 14:27

Redundante Einträge aus QListView entfernen

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
Antworten