QHash vorsortieren

Alles rund um die Programmierung mit Qt
Antworten
marvel
Beiträge: 105
Registriert: 9. August 2009 07:41

QHash vorsortieren

Beitrag von marvel »

Hi,
ich habe einen QHash der als key einen QString speichert und als value ein Objekt der Klasse Layer. Anhand des Hashs kann ich letztendlich ein karte zeichnen. jetzt habe ich das Problem das die Reihenfolge was gezeichnet wird willkürlich passiert. Dadurch werden bspw. Teile einer Strasse vom Wasser bedeckt. Jetzt suche ich nach einem Lösungsansatz, um den Hash vorzusortieren bzw erst das Wasser und dann die Straße zu zeichnen.

Code: Alles auswählen

	QHashIterator<QString, OAC_Layer*> iLayer(allLayers);
	
	while (iLayer.hasNext()) 
	{
		iLayer.next();

		qDebug() << iLayer.key();

		if(iLayer.value()->getViewable())
		{
			//qDebug() << "VIEWABLE";
			iLayer.value()->drawObjects(painter);			
		}
	}
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Du hast keine Möglichkeit, den QHash zu sortieren.
Google gibt aber Lösungsvorschläge, z.B.
http://www.qtcentre.org/threads/3591-So ... t-by-value
Schau dir auch mal die detaillierte Beschreibung zu QHash/QMap an, vor allem die Unterschiede (sortiert nach key (map) vs schneller lookup (hash)).
Antworten