QMap zum Aufbewahren von Klasseninstanzen?
Verfasst: 13. Juni 2006 12:07
Hi,
ich möchte mir div. Klasseninstanzen einer Klasse namens cKatalogAttribut merken. dazu habe ich der Klasse die darauf zugreifen soll, eine QMap hinzugefügt:
irgendwann werden dann aus der Datenbank alle Attribute gesucht und diese Map gefüllt:
später will ich dann auf eine Eigenschaft einer dieser Instanzen zugreifen:
getLongText() ist eine Methode von cKatalogAttribut die ein QString zurückgibt, das in den QLineEdit leLongText geschrieben werden soll.
Ich habe ausdrücklich die Instanzen selbst und nicht Pointer darauf gespeichert, da ich sonst die Instanz ja noch woanders speichern müsste.
obiger Code führt aber zur Fehlermeldung:
ich möchte mir div. Klasseninstanzen einer Klasse namens cKatalogAttribut merken. dazu habe ich der Klasse die darauf zugreifen soll, eine QMap hinzugefügt:
Code: Alles auswählen
private:
QMap<QString,cKatalogAttribut> alleEigenschaften;
Code: Alles auswählen
cKatalogAttribut attr(shortText,longText,einheitID,sTyp);
alleEigenschaften.insert(shortText,attr);
Code: Alles auswählen
leLongText->setText(alleEigenschaften.value(text).getLongText());
Ich habe ausdrücklich die Instanzen selbst und nicht Pointer darauf gespeichert, da ich sonst die Instanz ja noch woanders speichern müsste.
obiger Code führt aber zur Fehlermeldung:
wie macht man sowas sonst?Makefile.Debug:311: warning: overriding commands for target `build\.rcc\qrc_WERTer.cpp'
Makefile.Debug:262: warning: ignoring old commands for target `build\.rcc\qrc_WERTer.cpp'
ui\ConfigWindow.cpp:117: error: passing `const cKatalogAttribut' as `this' argument of `QString cKatalogAttribut::getLongText()' discards qualifiers
ui\ConfigWindow.cpp:118: error: passing `const cKatalogAttribut' as `this' argument of `int cKatalogAttribut::getEinheitID()' discards qualifiers
ui\ConfigWindow.cpp:119: error: passing `const cKatalogAttribut' as `this' argument of `int cKatalogAttribut::getTypeID()' discards qualifiers
ui\ConfigWindow.cpp:117: instantiated from here
C:\Qt\4.1.3\include\QtCore\..\..\src\corelib\tools\qmap.h:396: error: no matching function for call to `cKatalogAttribut::cKatalogAttribut()'
src\katalogattribut.h:7: note: candidates are: cKatalogAttribut::cKatalogAttribut(const cKatalogAttribut&)
src\katalogattribut.h:9: note: cKatalogAttribut::cKatalogAttribut(QString, QString, int, QString)