拦截QT关闭窗口的CloseEvent()解析
来源:互联网 发布:花岗岩水槽 知乎 编辑:程序博客网 时间:2024/04/29 22:29
拦截QT关闭窗口的CloseEvent()解析
QDialog类下有一个虚函数
void QDialog::closeEvent ( QCloseEvent * e ) [virtual protected]
void closeEvent(QCloseEvent *event){exit(0)}
通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作.
在头文件中,需要加入#include <QCloseEvent>:
#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函数进行实现:
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(); //接受退出信号,程序退出
}
}
- 拦截QT关闭窗口的CloseEvent()解析
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent()
- 拦截QT关闭窗口的CloseEvent(转)
- 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
- QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
- QT拦截关闭窗口事件
- QT拦截关闭窗口事件
- QT拦截关闭窗口事件
- Qt之拦截关闭窗口的QCloseEvent简单使用
- Qt按ESC关闭模态对话框不触发closeEvent()问题解析
- QT 关闭主窗口,触发关闭所有打开的窗口
- Qt正确的关闭窗口方法
- Qt窗口hide()后的关闭机制
- Qt中的close和closeEvent
- 总结
- textarea内容不为空的问题
- Java产生随机数
- <script>标签的for和event属性
- 关系操作
- 拦截QT关闭窗口的CloseEvent()解析
- notepad++ xml---如何使用Notepad++格式化XML文件
- EF架构封装类
- TotoiseSVN的基本使用方法
- Visual Stdio 新建类或窗体自动添加作者信息
- Nk.exe Boot Process
- Dense SIFT
- AfxBeginThread
- 手机摔坏文件怎么恢复