Seite 1 von 1

Destruktor wird nicht aufgerufen

Verfasst: 26. August 2010 16:14
von katsumoto
Hallo zusammen,

ich habe ein Programm, in dem diverse Einstellungen beim Beenden gespeichert werden sollen. Dies soll im Destruktor des jeweiligen Fensters geschehen. Der explizit definierte Destruktor wird aber nicht aufgerufen.
Deklaration:

Code: Alles auswählen

class GMainWindowSimple : public QMainWindow, private Ui::MainWindow
{
    Q_OBJECT

public:
    GMainWindowSimple(QWidget *parent = 0);
    ~GMainWindowSimple();

private:
    QSplitter *s, *t;
    GTreeNavigator *nav;
    QScrollArea *scroll_OV, *scroll_D;
    ...usw
};
Implementierung:

Code: Alles auswählen

GMainWindowSimple::GMainWindowSimple(QWidget *parent) : QMainWindow(parent)
{
    setupUi(this);
    setupActions();

    s = new QSplitter;
    t = new QSplitter;
    ...usw

    readSettings();
qDebug() << "Konstruktor";
}
Der Konstruktor wird aufgerufen, Die Einstellungen werden gesetzt. qDebug gibt "Konstruktor" aus.

Code: Alles auswählen

GMainWindowSimple::~GMainWindowSimple()
{
    writeSettings();
qDebug() << "Destruktor";

   ...usw
}

Die Einstellungen werden nicht geschrieben. qDebug gibt nicht "Destruktor" aus.

Warum wird der Destruktor nicht aufgerufen? In der Klassendeklaration ist Q_OBJECT definiert.

Verfasst: 26. August 2010 17:26
von Christian81
Und was hat das in 'Das Forum' zu suchen??

/edit: Und jetzt zur Antwort - wo rufst Du delete auf?