問題は次のとおりです。アクティブに何もしていないときにアプリケーションを閉じると、正しく終了します。ただし、アクティブに何かに取り組んでいる場合 (たとえば、while ループで待機している場合)、メイン ウィンドウは閉じますが、タスク マネージャーを開いて確認すると、プログラムはバックグラウンドで実行され続けます。
今日の大部分を問題のグーグル検索と可能な修正の実装に費やしましたが、役に立ちませんでした。quit() 関数は単に何もしないようです。ここに私が試したいくつかのことがあります:
- を使用して
app.connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
います。&app, SLOT(quit())
に変更しようqApp, SLOT(aboutQt())
としたところ、aboutQtウィンドウが一時的にポップアップしたため、シグナルがトリガーされていることがわかりました。 qApp->quit();
メイン ウィンドウ ボタンから実行される関数の先頭に含めます。アプリケーションはその行まで実行されますが、効果はありません。processEvents()
GUI が更新されていることを確認するために使用します。mainWindow.setAttribute(Qt::WA_QuitOnClose);
main.cppのようなステートメントを含めます。
メインウィンドウを閉じたときにアプリケーションを完全に終了させたいだけです。
違いがある場合は、qextserialport ライブラリを使用しています。