By
Moky
Updated:
Contents
【转】原创作品,允许转载。转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。
http://blog.csdn.net/vah101/article/details/6133728
QDialog类下有一个虚函数
void QDialog::closeEvent ( QCloseEvent * e ) [virtual protected]
通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作
在头文件中,需要加入#include :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #ifndef TEST_H #define TEST_H #include <QDialog> #include <QCloseEvent> class ClientTest : public QDialog { Q_OBJECT public: ClientTest(); void closeEvent(QCloseEvent *event); }; #endif
|
在cpp文件中,对closeEvent函数进行实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| void ClientTest::closeEvent(QCloseEvent *event) { QMessageBox::StandardButton button; button = QMessageBox::question(this, tr("退出程序"), QString(tr("警告:程序有一个任务正在运行中,是否结束操作退出?")), QMessageBox::Yes | QMessageBox::No); if (button == QMessageBox::No) { event->ignore(); } else if (button == QMessageBox::Yes) { event->accept(); } }
|