Qtでアプリが終了させられるときにダイアログを表示するには?

A. closeEvent() をオーバーライドする ウィンドウが閉じられる直前に呼ばれます。 ここでダイアログを出して、終了をキャンセルできます。 例:終了確認ダイアログ // MainWindow.h protected: void closeEvent(QCloseEvent *event) override; // MainWindow.cpp #include <QCloseEvent> #include <QMessageBox> void MainWindow::closeEvent(QCloseEvent *event) { auto ret = QMessageBox::question( this, "終了確認", "アプリを終了しますか?", QMessageBox::Yes | QMessageBox::No ); if (ret == QMessageBox::Yes) { event->accept(); // 終了OK } else { event->ignore(); // 終了キャンセル } } B. QCoreApplication::aboutToQuit 終了をキャンセルすることはできません 処理だけしたい場合に使います。 connect(qApp, &QCoreApplication::aboutToQuit, this, [](){ qDebug() << "アプリ終了直前"; });

2026年1月21日