Seite 1 von 1

Programm im Konstruktor eines Fensters beenden

Verfasst: 18. Dezember 2007 12:00
von PeterLustig
Hallo :)

Ich hab nen kleines Programm mit einem MainWindow. In diesem MainWindow sollen im Konstruktor diverse Informationen aus einer Datei abgefragt werden.

Wenn diese Textdatei nun aber nich geöffnet werden kann oder der Inhalt korrupt ist, dann soll das Programm eine Fehlermeldung (QMessageBox) ausgeben und sich dann beenden.

Doch irgendwie hakt es mit dem beenden. Egal ob ich this->destroy() oder qApp->exit() nutze, das Fenster öffnet sich, bleibt bestehen und das Programm läuft weiter.

Warum beendet sich das Programm nicht? Gibt es evtl. bessere Wege Daten zu beginn eines Programmes einzulesen und evtl. bei Fehler das Programm zu beenden?


PeterLustig :)

Verfasst: 18. Dezember 2007 12:16
von upsala
Weil diese Kommandos wahrscheinlich alle aufgerufen werden, bevor du den Event-Handler erreicht hast. Entweder du sorgst dafür, daß im diesem speziellen Falle der Event-Handler nicht mehr aufgerufen wird oder du packst die Abfrage, MessageBox usw. in das Polish oder ShowEvent.

Verfasst: 19. Dezember 2007 08:30
von PeterLustig
Danke, für die Antwort. :)

ich werd es jetzt einfach anders. Ich werd den Konstruktor privat machen und eine statische Create Funktion erstellen, welche einen Pointer auf das Objekt bei gelingen (alle Daten geladen und korrekt) oder einen null Pointer returnen.