if (Programm beenden) -> break While-Schleife =)

Verschiedenes zu Qt
Antworten
Saul
Beiträge: 29
Registriert: 17. Juni 2011 09:41

if (Programm beenden) -> break While-Schleife =)

Beitrag von Saul »

Hallo Leute,
ich stehe vor doch sehr trivialen problem. Mein programm ruft eine funktion auf, die eine whileschleife enthält. Diese soll nun abgebrochen werden, wenn ich das programm beende (beispielsweise durch das klicken aufs kreutz). Momentan ist es so geregelt, das ich die schleife erst durch einen buttenclick beenden muss und erst dann das programm schließen kann.
Gibt es irgendeinen parameter der beim schließen des programms gesetzt wird? Somit könnte ich eine if-abfrage in der schleife implementieren.
Oder gibt es eine exit() funktion oder so etwas die ich im destruktor aufrufen muss?
Wäre sehr dankbar für einen rat.
Gruß
Saul
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: if (Programm beenden) -> break While-Schleife =)

Beitrag von ScyllaIllciz »

closeEvent ist hier das Stichwort!
Saul
Beiträge: 29
Registriert: 17. Juni 2011 09:41

Re: if (Programm beenden) -> break While-Schleife =)

Beitrag von Saul »

HM, da wüsste ich jetzt nich wie ich das anwenden sollte =(
Könntest du da mal ein kleines Beispiel posten? Hab bisher noch kein event definiert.

Bin vorhin aber auf eine andere möglichkeit gestoßen:

Code: Alles auswählen

connect( qApp, SIGNAL(lastWindowClosed()),this,SLOT(quit()) );
Damit klappt es auch.
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: if (Programm beenden) -> break While-Schleife =)

Beitrag von ScyllaIllciz »

mainwindow.h:

Code: Alles auswählen

protected:
    void closeEvent(QCloseEvent *event);
mainwindow.cpp:

Code: Alles auswählen

void MainWindow::closeEvent(QCloseEvent *event)
{
    if (QMessageBox::question(this, "Beenden", "Soll das Programm beendet werden?"==QDialog::Yes) 
        event->accept();
    else
        event->ignore();
}
Ist alles bei den Examples enthalten.
Antworten