QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent

建了一个对话框,我不想把边框去掉,只想去掉关闭按钮, 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();  //接受退出信号,程序退出     } }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

窗口管理器 xmonad 教程

开发者最需要的,就是一个顺手的开发环境。 ? 每个人的偏好不一样,我的开发环境是 Fish Shell + Xfce + xmonad + Vim,已经用了好多...

410110
来自专栏web开发

Vue项目图片剪切上传——vue-cropper的使用

最近自己在研究vue,然后做了一个小型的后台管理系统用来练手,开发过程中,想到了剪切图片上传用户头像的需求。上网百度了一番,发现好多用的都是vue-croppe...

55330
来自专栏前端大白专栏

基于mpvue开发微信小程序,vue能用的,用mpvue哪些情况不能用

41670
来自专栏微信公众号:Java团长

Intellij IDEA神器居然还有这些小技巧

Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱,我决定写一个与其相关的专...

11220
来自专栏小文博客

WP-Cumulus完美支持中文3D标签插件

18020
来自专栏西安-晁州

app开发之deviceone

deviceone,跨平台、低成本、纯原生的app开发服务,具体介绍见:http://www.deviceone.net/ do不同于dcloud、rn等开发套...

62300
来自专栏Hadoop实操

Cloudera Manager的时间轴

Cloudera Manager的很多页面上都有时间轴(Time Line)。当你查看服务或者主机页面时,使用时间轴可以仅显示特定时间点的状态和运行状况。当你查...

54070
来自专栏Java技术分享

基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化

在各种Web开发过程中,对话框和提示框的处理是很常见的一种界面处理技术,用得好,可以给用户很好的页面体验,Bootstrap开发也一样,我们往往在页面新增、编辑...

30550
来自专栏企鹅号快讯

小程序开发的40个技术窍门,纯干货!

微信小程序正式上线一周时间,相关话题持续升温。现在为大家筛选出小程序开发实战需要注意的40个技术点,供大家参考! ? 小程序开发的40个技术窍门 1 Q:为什么...

265100
来自专栏WindCoder

Ubuntu14.04下使用fcitx安装搜狗及双拼输入法

之前Ubuntu打不开了,重新装了一遍,顺便把一些东西直接记录下来,省得日后再四处爪哇。。。

51130

扫码关注云+社区

领取腾讯云代金券