Qt アプリケーションが閉じる直前にデータベースを更新したいと考えています。
1connect(this, SIGNAL(quit()), this, SLOT(updateDatabase()))
つの方法は終了ボタンを導入することですが、ユーザーが押した場合にこの機能を実現することは可能Alt+F4
ですか?
Qt アプリケーションが閉じる直前にデータベースを更新したいと考えています。
1connect(this, SIGNAL(quit()), this, SLOT(updateDatabase()))
つの方法は終了ボタンを導入することですが、ユーザーが押した場合にこの機能を実現することは可能Alt+F4
ですか?
aboutToQuit()
代わりにシグナルを使用してください。
このシグナルは、アプリケーションがメイン イベント ループを終了しようとしているときに発行されます。たとえば、イベント ループ レベルがゼロになったときなどです。これは、アプリケーション内から quit() を呼び出した後、またはユーザーがデスクトップ セッション全体をシャットダウンしたときに発生する可能性があります。
このシグナルは、アプリケーションが直前にクリーンアップを行う必要がある場合に特に役立ちます。この状態ではユーザーとの対話はできないことに注意してください。
例えば :
connect(this, SIGNAL(aboutToQuit()), this, SLOT(updateDatabase()));
aboutToQuit()
シグナルを送るのではなく、 を再実装する別の方法がありcloseEvent(QCloseEvent *event)
ます。ステートメントの前にスロットを呼び出すことができますevent->accept()
;
このような:
void MainWindow::closeEvent(QCloseEvent *event)
{
call_your_slot_here();
// accept close event
event->accept();
}