ユーザーが開始したQMainWindowクローズイベントと、LinuxのSIG_KILLまたはWindowsのTerminateProcess()による異常終了をどのように判断できますか?
緊急性の違いが存在するためです。
私は、ユーザーまたはユーザーによるクローズを拒否することができますが、必要な限り考えることができます。
しかし、中断したり、次の致命的打ち切り試行を行うまで、できるだけ早く中間結果と現在の状態を保存しなければなりません。
closeEvent()でマウスの位置を分析することができます。しかし、それはタスクバーの外観に依存します。私は、アプリケーションを非最小化状態に設定して、次のユーザーアクションを待つことができます。しかし、それは中断の場合の良い行動ではありません。ユーザーは次の致命的なアボート操作を試みることができます。または、保存の時間が失われます。
敬具、ゲンナジーQt QMainWindowは、ユーザーによるクローズとシステムによる中止の違いを示します。
0
A
答えて
2
あなたのアプリケーションがSIGKILL
を受信した場合には、それははは何もする時間がありません。その場で終了します。その信号を捕まえたりブロックしたりすることはできません。したがって、SIGKILLを通常のアプリケーションのシャットダウンと区別することはできません。あなたが強制終了されたときはわかりません。 (TerminateProcess()
の場合も同様です)
通常のアプリケーションシャットダウン中に何かする必要がある場合は、クリーンアップルーチンをQCoreApplication::aboutToQuit()
信号に接続する必要があります。それはまさにそれが設計されているドキュメントをチェックしてください。
関連する問題
- 1. QMenuBarをQMainWindow Bottom QTに入れよう
- 2. Qt QMainWindow中央ウィジェットの削除
- 3. QtのブラウザスタックQMainWindow
- 4. Qtによる動的プロパティの翻訳を停止します
- 5. Qmainwindowにウェブページを表示するには?
- 6. QMainWindowを中央に配置するには?
- 7. Qt QMainWindowが閉じられたとき、どのように待機するか知っていますか?
- 8. QMainWindowの有効期間中、カスタムQAbstractItemModelを有効にします。
- 9. RailsにRspecの使用を中止するように指示するには?
- 10. SQLの制約違反による中止
- 11. 私はJavaScriptのスクリプトを停止するタイマーのようなシステムを作成しようとしています
- 12. QtによるSSLハンドシェイク中にエラーが発生しました
- 13. System.outがコールバックからクローズしないようにするには
- 14. どのようにQtの中に例外をキャッチするには? Qtの-5のよう
- 15. マウスをドラッグするとqtでWM_KEYDOWNメッセージがトリガされるQMainWindow
- 16. 間違ったユーザーとしてgitにコミットするユーザーを停止させよう
- 17. `git rebase`のコミットメッセージによるコミットを中止します
- 18. データベースを削除しないようにユーザーを停止する
- 19. ブラウザはユーザーのクリックとプログラムによるクリックの違いをどのように伝えますか?
- 20. Qt QNetworkAccessManager認証を中止する
- 21. Qt/OpenGL 2Dテクスチャを表示しようとしています
- 22. Qt/Spyderによる4K表示のスケーリング
- 23. QMainWindowでQGraphicsSceneを更新するには
- 24. QMainWindowの中にGIFを入れるには
- 25. QtのdeleteChildren()中に子が削除されないようにするには?
- 26. Gsonによるクラス注釈の中止
- 27. ユーザーがQMainWindowのサイズを変更したときにコールバックを割り当てる方法は?
- 28. Qtシンプルなメモ帳、QmainWindowのステータスバーにある印刷行番号
- 29. PHP投票システム、どのようにスパミングを停止するには?
- 30. ドキュメント/ボディ全体をクローズしないようにする
新しい質問がある場合は、新しい質問をしてください。 – Mat