Fehlkermeldung beim Verwenden einer QMap

Alles rund um die Programmierung mit Qt
Antworten
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Fehlkermeldung beim Verwenden einer QMap

Beitrag von slash-ex »

Ich habe eine ziemlich merkwürdige Fehlermeldung, aber was ist daran verkehrt wenn ich ganz normal eine Map befüllen will?

Deklaration

Code: Alles auswählen

		QMap<QPixmap, QPointF> Area;
Teil der Implementation, beides produziert den Fehler...

Code: Alles auswählen

void TEST::dropEvent(QDropEvent *event)
{
	if (event->mimeData()->hasFormat("image/terrain-piece")) {	
		QByteArray pieceData = event->mimeData()->data("image/terrain-piece");
		QDataStream dataStream(&pieceData, QIODevice::ReadOnly);
		QPixmap pixmap;
		dataStream >> pixmap;

		//Area.insert(pixmap, QPointF(mouse_pos.x() - pixmap.width(), mouse_pos.y() - pixmap.height() ) );
		Area[pixmap] = *(new QPointF) ;

		event->setDropAction(Qt::MoveAction);
		event->accept();
	}
	else
		event->ignore();
}
Fehlermeldung

Code: Alles auswählen

../../../Qt/4.3.1/include/QtCore/../../src/corelib/tools/qmap.h:99: error: no match for 'operator<' in 'key1 < key2'
Ausschnitt aus der QMap.h

Code: Alles auswählen

template <class Key> inline bool qMapLessThanKey(const Key &key1, const Key &key2)
{
    return key1 < key2;
}
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Aus der Doku:
In addition, QMap's key type must provide operator<()
Erfüllt dein QPixmap diese Bedingung?
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Beitrag von slash-ex »

Achso, aber warum ist das so? wird das gebraucht um die keys zu unterscheiden, also damit jeder eindeutig ist? Dann könnte ich ja einen eigenen Operator basteln.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Hast du Doku zu QMap eigentlich schon mal durchgelesen?
Antworten