2017-11-08 3 views
0

Ich habe eine QtQuick-Anwendung. Wenn der Benutzer versucht, die Anwendung zu schließen, möchte ich ein "Sind Sie sicher?" Fenster zum Aufklappen.QML: Bestätigung vor dem Schließen der Anwendung

Mein Haupt C++ Klasse hat dies:

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QQmlApplicationEngine engine; 
    engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 
    return app.exec(); 
} 

Und mein Haupt QML-Klasse hat ein Anwendungsfenster:

ApplicationWindow { 
    id: root 
    ... 
} 

Wo und wie würde ich das close-Ereignis zu fangen? Ich habe gelesen, dass close_Event() von der QMainWindow-Methode oder etwas überschrieben wurde, aber ich habe kein QMainWindow und ich weiß nicht, wo ich diesen Code einfügen würde.

Also ich würde gerne wissen, wie man verhindert, dass die App geschlossen wird und stattdessen etwas anderes passiert, und wie ich die App später schließen würde, wenn der Benutzer im Bestätigungsdialog auf "OK" klickt.

Soweit ich sehen kann, die Application der „OnClosing“ nur erlaubt mir einige bereinigen, bevor die unvermeidlichen Nähe zu tun, aber es verhindert nicht die enge (bitte korrigiert mich wenn ich falsch liege)

+0

Cool, dass Sie es gelöst haben! Aber eine Lösung ist nicht Teil einer Frage. Damit alles schön und gut organisiert bleibt, bearbeiten Sie bitte Ihre Frage, entfernen Sie die Lösung erneut und ** posten Sie sie stattdessen als Antwort **. Dann, so bald wie möglich, markieren Sie diese Antwort als die richtige. Dann können Leute, die nach dieser Antwort suchen, auf den ersten Blick sehen, dass für diese Frage eine Antwort vorliegt. Leute, die auf der anderen Seite Hilfe suchen, wissen, dass hier alles gut ist und sie sich nicht kümmern müssen. Vielen Dank! – derM

Antwort

0

Ich habe es gelöst.

ApplicationWindow { 
    id: root 
    onClosing: close.accepted = false 
} 

Dies verhindert, dass die App geschlossen wird.

root.close() 

Dies schließt die App.

Verwandte Themen