Speicherprobleme (zumindest denke ich das)
Verfasst: 4. Juli 2005 01:25
Hi,
Zuerst Sorry für das Subjekt aber ich weiß selber nicht genau was das Problem ist. Daher versuche ich es so gut es geht zu beschreiben:
Ich habe ein QWidget in dessen Konstruktor ich einige Labels und Buttons erstelle. Dazu erstelle ich noch eine ganze Menge QPixmaps, die ich den Buttons zuordne. Dieses QWidget wird nun bei jedem Druck auf einen Knopf neu geladen. Dazu rufe ich "delete Widget" auf. Die Buttons und Label haben als Parent jeweils das QWidget, die sollten also automatisch gelöscht werden. Die QPixmap nicht, daher habe ich im Dekonstruktor des QWidget jedes QPixmap mit delete entfernt.
Jetzt das Problem:
Wenn ich das Programm in VS (mit QT 3.2 aus dem Buch von damals) per Debug laufen laße läuft alles wie ich es will, nur am Ende, wenn ich es über das Kreuz oben rechts abbreche, kommt eine Fehlermeldung und ein Verweis auf "FreeHeap".
Wenn ich das Programm aber über die exe-Datei (die im Debug-Modus erstellt wurde) aufrufe, dann bricht es nach einigen wiederholten klicks auf den Button ab. Hier bekomme ich keine Fehlermeldung.
Ich weiß nicht mehr weiter, hatte vielleicht jemand schonmal solche Probleme?
Vielen Dank ...
palli
Zuerst Sorry für das Subjekt aber ich weiß selber nicht genau was das Problem ist. Daher versuche ich es so gut es geht zu beschreiben:
Ich habe ein QWidget in dessen Konstruktor ich einige Labels und Buttons erstelle. Dazu erstelle ich noch eine ganze Menge QPixmaps, die ich den Buttons zuordne. Dieses QWidget wird nun bei jedem Druck auf einen Knopf neu geladen. Dazu rufe ich "delete Widget" auf. Die Buttons und Label haben als Parent jeweils das QWidget, die sollten also automatisch gelöscht werden. Die QPixmap nicht, daher habe ich im Dekonstruktor des QWidget jedes QPixmap mit delete entfernt.
Jetzt das Problem:
Wenn ich das Programm in VS (mit QT 3.2 aus dem Buch von damals) per Debug laufen laße läuft alles wie ich es will, nur am Ende, wenn ich es über das Kreuz oben rechts abbreche, kommt eine Fehlermeldung und ein Verweis auf "FreeHeap".
Wenn ich das Programm aber über die exe-Datei (die im Debug-Modus erstellt wurde) aufrufe, dann bricht es nach einigen wiederholten klicks auf den Button ab. Hier bekomme ich keine Fehlermeldung.
Ich weiß nicht mehr weiter, hatte vielleicht jemand schonmal solche Probleme?
Vielen Dank ...
palli