Seite 1 von 1

QHash vorsortieren

Verfasst: 19. Dezember 2010 09:17
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);			
		}
	}

Verfasst: 19. Dezember 2010 10:22
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)).