QMap<int, QWidget*> und clear()
-
madRenEGadE
- Beiträge: 52
- Registriert: 10. Februar 2006 15:15
QMap<int, QWidget*> und clear()
Was passiert mit mit new erstellten QWidgets wenn ich clear() auf QMap aufrufe? Werden diese dann gelöscht oder nur der Zeiger auf das jeweilige Widget gelöscht?
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
-
madRenEGadE
- Beiträge: 52
- Registriert: 10. Februar 2006 15:15
und wie muss ich die entsprechenden widgets löschen?
es geht nicht wenn ich folgendes mache:
es geht nicht wenn ich folgendes mache:
Code: Alles auswählen
QMap<int, QWidget*> map;
delete map[1];
[quote]
die 1 ist jetzt nur ein beispiel....[/quote]Ungetestet:
Code: Alles auswählen
QMapIterator<int, QWidget *> it(map);
while (it.hasNext()) {
it.next();
delete it.value();
}
map.clear();ich würd folgendes machen:
Dann hat man wenigstens alles gleichzeit gemacht 
Elgrimm Esleborn
Code: Alles auswählen
for ( QMapIterator < int, QWidget * > it = map.begin ( ); it != map.end ( ); )
{
if ( it.value ( ) != NULL )
delete it.value ( );
it = map.erase ( it );
}Elgrimm Esleborn
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Das
ist übrigens unnötig, da
in C++ erlaubt ist
Code: Alles auswählen
if ( it.value ( ) != NULL )Code: Alles auswählen
delete 0;-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: