Seite 1 von 1

mal wieder Destruktor...

Verfasst: 19. September 2011 17:29
von prinzenrolle
Hallo,
ich habe eine Klasse Stack abgeleitet von QStackedWidget.
Diese ist auch die "Hauptklasse"

Code: Alles auswählen

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    #ifdef Q_OS_LINUX
        app.setOverrideCursor(Qt::BlankCursor);
    #endif

    Stack *st = new Stack();
    st->show();
    return app.exec();
}
Da ich in der Klasse dynamisch Widgets erzeuge und lösche habe ich einen Destruktor geschrieben...

Code: Alles auswählen

Stack::~Stack()
{
    int cnt,i;
    cnt = this->count();

    qDebug() << "Destruktor...";

    if(cnt >= 3)
    {
        for(i=2;i<cnt;i++)
            delete widget(i);
    }

    delete blight;
    delete data;
    delete S_ErrorWidget;
    delete S_Main;
    delete S_PortSetup;
    delete tcpcon;
}
Jetzt habe ich einen Button Exit,
drücke ich den wird das Programm geschlossen,

Code: Alles auswählen

void Stack::exit(void)
{
    qDebug() << "exit";
    qApp->closeAllWindows();
    qApp->quit();
}
allerdings wird der Destruktor vom Stack nicht aufgerufen.
Was mache ich denn falsch?

Vielen dank!

Re: mal wieder Destruktor...

Verfasst: 19. September 2011 17:50
von Christian81
Und wo genau sollte er aufgerufen werden? Sehe keine delete...

Re: mal wieder Destruktor...

Verfasst: 19. September 2011 18:03
von ceumern
probiers mal mit

Code: Alles auswählen

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    #ifdef Q_OS_LINUX
        app.setOverrideCursor(Qt::BlankCursor);
    #endif

    Stack st;
    st.show();
    return app.exec();
}

Re: mal wieder Destruktor...

Verfasst: 20. September 2011 08:58
von prinzenrolle
ceumern hat geschrieben:probiers mal mit

Code: Alles auswählen

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    #ifdef Q_OS_LINUX
        app.setOverrideCursor(Qt::BlankCursor);
    #endif

    Stack st;
    st.show();
    return app.exec();
}
Hallo,
genau das war es!
Ich habe das Programm so abgeändert und da Stack nun nicht mehr dynamisch
erzeugt wird, bekomme ich nun beim quit dessen destruktor meldung ausgegeben.

Vielen dank.