Qt MainWindow CloseEvent Mac Cmd+QC++

Programme in C++. Entwicklerforum
Guest
 Qt MainWindow CloseEvent Mac Cmd+Q

Post by Guest »

Unter OS X 10.9 mit Qt 5.2 und dem folgenden Anwendungscode

Code: Select all

#include "mywindow.h"
#include 

int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyWindow w();
w.show();
return a.exec(); }
wobei MyWindow von QMainWindow abgeleitet ist und die Methode closeEvent(QCloseEvent*) überschreibt, wird diese Methode aufgerufen, wenn ich die schließe Anwendungsfenster (z. B. klicken Sie auf die Schaltfläche „Schließen“ von Windows (x), aber es wird nicht aufgerufen, wenn ich die Anwendung über das Hauptmenü -> „Beenden“ oder über die Tastenkombination „CMD + Q“ schließe.

Als ich mich im Internet umsah und zahlreiche Fragen stellte, hatte ich den Eindruck, dass das Schließen der Anwendung das closeEvent für alle Fenster der obersten Ebene aufrufen sollte. Ist das nicht der Fall oder läuft hier etwas schief?

Bearbeiten: Gibt es zusätzlich zu den oben genannten Möglichkeiten, die Anwendung zu schließen? Gibt es andere Instanzen, die ich im Allgemeinen behandeln sollte und die zu QApplication::quit führen würden, anstatt das Ereignis „close“ des Fensters aufzurufen? Was ist zum Beispiel mit einem Herunterfahren des Systems?

Beim Behandeln eines Schließereignisses bestätige ich, dass der Benutzer wirklich beenden möchte, und stelle sicher, dass die Bereinigung erfolgt Das Zurückschreiben geänderter Einstellungen findet statt. Sollte ich vielleicht stattdessen die Bereinigungs-/Speichereinstellungen in den Destruktor verschieben und die Bestätigungsabfrage in closeEvent durchführen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post