QT拦截关闭窗口事件
2013-04-23 10:54
176 查看
QDialog类下有一个虚函数
通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作
在头文件中,需要加入#include <QCloseEvent>:
在cpp文件中,对closeEvent函数进行实现:
[cpp]
view plaincopyprint?
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(); //接受退出信号,程序退出
}
}
void QDialog::closeEvent (
QCloseEvent * e ) [virtual protected]
通过实现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函数进行实现:
[cpp]
view plaincopyprint?
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拦截关闭窗口事件
- QT拦截关闭窗口事件
- 【Qt开发】Qt 捕捉窗口关闭事件与信号的捕捉
- 怎么拦截窗口上的最大化\最小化\关闭按钮事件
- 拦截QT关闭窗口的CloseEvent()
- 拦截QT关闭窗口的CloseEvent(转)
- Qt之拦截关闭窗口的QCloseEvent简单使用
- qt屏蔽关闭窗口事件
- Qt捕捉窗口关闭事件与信号的捕捉
- qt gui窗口关闭事件
- Qt之拦截关闭窗口的QCloseEvent简单使用
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent()解析
- 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
- QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- Qt捕捉窗口关闭事件与信号的捕捉