Destruktor wird nicht aufgerufen
Verfasst: 26. August 2010 16:14
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:
Implementierung:
Der Konstruktor wird aufgerufen, Die Einstellungen werden gesetzt. qDebug gibt "Konstruktor" aus.
Die Einstellungen werden nicht geschrieben. qDebug gibt nicht "Destruktor" aus.
Warum wird der Destruktor nicht aufgerufen? In der Klassendeklaration ist Q_OBJECT definiert.
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
};
Code: Alles auswählen
GMainWindowSimple::GMainWindowSimple(QWidget *parent) : QMainWindow(parent)
{
setupUi(this);
setupActions();
s = new QSplitter;
t = new QSplitter;
...usw
readSettings();
qDebug() << "Konstruktor";
}
Code: Alles auswählen
GMainWindowSimple::~GMainWindowSimple()
{
writeSettings();
qDebug() << "Destruktor";
...usw
}
Warum wird der Destruktor nicht aufgerufen? In der Klassendeklaration ist Q_OBJECT definiert.