Qt4學習筆記(十 一),Qt 捕捉視窗關閉事件與訊號的捕捉
阿新 • • 發佈:2019-01-28
有時候我們希望在關閉視窗之前做一些操作,例如儲存快取資料或向用戶提示是否關閉視窗等等。由於一般的視窗都是繼承自QWidget, 那麼我們可以通過覆蓋QWidget中的虛擬函式closeEvent(QCloseEvent* event);來達到這個目的。(1)首先新增依賴庫:
- #include <QCloseEvent>
- protected:
- void closeEvent(QCloseEvent *event);
- void MainWindow::closeEvent(QCloseEvent *event)
- {
- QMessageBox::StandardButton button;
- button=QMessageBox::question(this,tr("退出程式"),QString(tr("確認退出程式")),QMessageBox::Yes|QMessageBox::No);
- if(button==QMessageBox::No)
- {
- event->ignore(); // 忽略退出訊號,程式繼續進行
- }
- elseif(button==QMessageBox::Yes)
- {
- event->accept(); // 接受退出訊號,程式退出
- }
- //TODO: 在退出視窗之前,實現希望做的操作
- }