2017-11-08 30 views
0

私はQtQuickアプリケーションを持っています。ユーザーがアプリケーションを終了しようとすると、私は "本当ですか?"ポップアップウィンドウ。QML:アプリケーションを閉じる前に確認を依頼する

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

そして、私のメインのQMLクラスをアプリケーションウィンドウがあります:

私の主なC++クラスは、この持ち

ApplicationWindow { 
    id: root 
    ... 
} 

とは、どのように私は近いイベントをキャッチするでしょうか? QMainWindowメソッドなどからcloseEvent()をオーバーライドする方法については読んでいますが、QMainWindowはありません。そのコードをどこに置くのかわかりません。

私は、アプリが終了しないようにする方法を知りたいのですが、確認ダイアログでユーザーが「ok」をクリックしたときにアプリを閉じる方法を教えてください。

私の知る限り見ることができるように、ApplicationWindowの「onClosingは」私だけが、一部は避けられクローズする前にクリーンアップを行うことができますが、それは近くに防ぐことはできません(私が間違っている場合は、私を修正してください)

+0

あなたはそれを解決して涼しい!しかし解決策は問題の一部ではありません。あなたの質問を編集して、解決策をもう一度削除し、**代わりに回答として投稿してください**。できるだけ早く、その答えを正しいものとしてマークしてください。そして、その答えを探している人は一見して、この質問のために**答えがあることが分かります。他の人を助けようとしている人は、ここですべてが良いことを知り、彼らは気にする必要はありません。ありがとうございました! – derM

答えて

0

私はそれを解決しました。

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

これは、アプリが終了しないようにします。

root.close() 

これでアプリが終了します。

関連する問題