QList<T> statt QObjectList [gelöst]
Verfasst: 18. November 2010 23:56
Es war einmal ein Programm (in Qt3 geschrieben), das heute nach Qt4 übersetzt werden soll.
Dort gibt es eine Klasse MyLabel von QLabel abgeleitet, in der Methoden den Zustand des Objekts verändern.
Da ich eine ganze Menge davon benutze, waren die Label in einer QObjektList eingefügt. Diese Liste hatte einige Funktionen, die sehr nützlich waren. Da diese Liste in Qt4 so nicht mehr existiert, bleibt QList<MyLabel> als Container.
Ein Zeiger auf ein Label wird über die GUI geholt, woraufhin das Label aus der Liste gelöscht werden soll:
Leider erzeugt diese Zeile einen Fehler:
Den verstehe ich leider überhaupt nicht.
Ferner gibt es folgende Zeilen:
die sich nicht übersetzen lassen, da l nicht vom Typ T& ist, sondern T*. Casts sind nicht so meine Stärke. Wie kriege ich das Label in die Liste?
Dort gibt es eine Klasse MyLabel von QLabel abgeleitet, in der Methoden den Zustand des Objekts verändern.
Da ich eine ganze Menge davon benutze, waren die Label in einer QObjektList eingefügt. Diese Liste hatte einige Funktionen, die sehr nützlich waren. Da diese Liste in Qt4 so nicht mehr existiert, bleibt QList<MyLabel> als Container.
Ein Zeiger auf ein Label wird über die GUI geholt, woraufhin das Label aus der Liste gelöscht werden soll:
Code: Alles auswählen
labelListe.removeAt( labelListe.indexOf( *dragLabel ) );
Code: Alles auswählen
no match for 'operator==' in 'n->QList<T>::Node::t [with T = MyLabel]() == t'
Ferner gibt es folgende Zeilen:
Code: Alles auswählen
void Programm::addLabel( data ){
MyLabel *l = new Mylabel( data );
//...
labelListe.append( *l );
}