QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
2015-04-30 10:13
519 查看
建了一个对话框,我不想把边框去掉,只想去掉关闭按钮,
setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint);
结果那个问号的按钮去掉了,但是关闭按钮还在,求助啊
setWindowFlags(Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
这样就行了,哈哈!
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
还是简单点好!
QDialog类下有一个虚函数
通过实现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(); //接受退出信号,程序退出
}
}
setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint);
结果那个问号的按钮去掉了,但是关闭按钮还在,求助啊
setWindowFlags(Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
这样就行了,哈哈!
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
还是简单点好!
QDialog类下有一个虚函数
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函数进行实现:
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关闭窗口的CloseEvent
- QT对话框去掉帮助和关闭按钮
- QT对话框去掉帮助和关闭按钮
- QT对话框去掉帮助和关闭按钮
- QT对话框去掉帮助和关闭按钮
- QT窗口去掉最大化最小化关闭按钮
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent()
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent(转)
- qt中去掉最大,最小窗口,关闭按钮。
- 拦截QT关闭窗口的CloseEvent()解析
- 拦截QT关闭窗口的CloseEvent
- 拦截QT关闭窗口的CloseEvent
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- QT拦截关闭窗口事件
- 解除IE拦截弹出窗口限制,禁用关闭弹出窗口时的确认对话框。
- QT窗口最大,最小,关闭按钮使不能
- QT对话框自定义标题、最小化,最大化,关闭,帮助