Qt - 自定义窗口 点击窗口外自动关闭

知识点
利用 Qt::Popup,可以实现点击窗口外区域自动关闭窗口;
利用 Qt::WA_NoMouseReplay,可以避免重复触发窗口外的鼠标点击事件(仅关闭窗口);
利用 activeWindows(),可以解决Qt::Popup属性的窗口无法输入中文的问题(show之后调用);

代码:

// PopupDialog.h
class PopupDialog : public QDialog
{Q_OBJECT
public:PopupDialog(QWidget * parent = nullptr);~PopupDialog();protected:void mousePressEvent(QMouseEvent * event) override;
}// PopupDialog.cpp
PopupDialog::PopupDialog(QWidget * parent): QDialog(parent)
{setWindowFlags(Qt::Popup | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint);
}PopupDialog::~PopupDialog()
{}void PopupDialog::mousePressEvent(QMouseEvent * event)
{setAttribute(Qt::WA_NoMouseReplay);QDialog::mousePressEvent(event);
}

Qt - 自定义窗口 点击窗口外自动关闭相关推荐

  1. Qt窗口点击窗口外区域自动关闭窗口

    Qt自动关闭窗口的方式: 利用 Qt::Popup,可以实现点击窗口外区域自动关闭窗口: 利用 Qt::WA_NoMouseReplay,可以避免重复触发窗口外的鼠标点击事件(仅关闭窗口): 利用 a ...

  2. Qt - 自定义光标点击样式

    来由      上周右手大拇指被自家车门夹伤,, 无奈被迫拔甲手术,,以至疼痛不能发文.禁食等等造成很多不便,哎 再次敲钟稳稳的幸福..而后就连心念的手游农药也,,看看朋友直播缓解度日.注意到在录制屏 ...

  3. qt自定义含有拖动功能的窗口在点击窗口的下拉列表时窗口移动

    提要 自定义的弹出窗口,窗口可以实现按下鼠标拖动,鼠标释放停止拖动,窗口种含有子控件,下拉列表,在点击下拉列表时窗口移动. 解决方法 因为点击下拉列表的时候,触发了窗口的移动事件,所以添加下拉列表的事 ...

  4. Qt窗口失去焦点关闭/点击窗口外其他地方关闭

    点击窗口外其他地方关闭 setWindowFlags(Qt::FramelessWindowHint | Qt::Popup); 窗口失去焦点关闭 1.示例一 bool testWidget::eve ...

  5. qtabwidget放大_Qt自定义弹窗屏蔽父窗口(QWidget设置setWindowModality(Qt::ApplicationModal);以后再show)...

    写Qt程序时遇到一个问题: Qt自带的弹窗功能单一,所以须要自己用ui设计弹窗的内容,这样弹窗就和普通窗口一样了,但问题是这个弹窗显示后父窗口还是活动的.网上找了很久找到了解决办法: Qt::Wind ...

  6. Qt 自定义标题栏,最小化、最大化、关闭窗口,双击最大化,鼠标拖动等效果实现

    文章目录 前言 效果 代码 .pro文件 widget.h widget.cpp widget.ui title.h title.cpp title.ui 前言 本次实验内容为Qt自定义标题栏,最小化 ...

  7. QT 自定义带图片背景半透明阴影窗口

    先前写过一个,美观度是挺好的但感觉写的有点复杂了,其实也没啥写的,网上一大把,看见群里有人问怎么实现,故记录下 //1.全体透明 背景和窗口一起透明this->setWindowOpacity( ...

  8. qt自定义窗口添加父窗口后,显示不出来

    提要 继承于QDialog的类,在被其它类创建的改对象时,没设置父窗口前显示正常,设置了父窗口后显示不出来. 自定义窗口的构造函数 configBtnNameDialog::configBtnName ...

  9. qt自定义窗口,其绘制的窗口边框线显示不全

    引言 自定义窗口,该窗口包含标题栏,默认整个窗口的边框线为蓝色,当点击该窗口的时候,窗口的边框线便为红色.程序在运行的时候,窗口的边框线只显示了左右两边的线,没有显示上下边的线. 示例 效果: 解决方 ...

  10. 【QT】QT从零入门教程(十一):QT自定义窗口

      首先是借鉴了网上的博客,实现无边框,自由拖动的自定义窗口效果. #ifndef CUSTOMWINDOW_H #define CUSTOMWINDOW_H #include <QtGui&g ...

最新文章

  1. 欧拉定理 费马小定理
  2. php_mongo.dll下载(php操作mongoDB需要)
  3. 致物理学家的一个实验
  4. 计算机组成原理实验箱使能开关,计算机组成原理微程序计数器实验报告
  5. Linux压缩和解压缩命令汇总(tar命令汇总)
  6. HUNAN 11560 Yangyang loves AC(二分+贪心)
  7. 计算机 教育 研究生分数查询,专业硕士在考试结束之后几周内可以去查分呢现在只能是通过电脑来查分了吗...
  8. 44.分治算法练习:  一元三次方程求解
  9. Javascript鼠标键盘事件
  10. (一) 开天辟地入门篇(mvc)
  11. mysql-connector-java-5.1.22下载及安装
  12. 案例上手 Python 数据可视化
  13. STELLA—系统动力学仿真软件 System Dynamics仿真
  14. 【Code】numpy、pytorch实现全连接神经网络
  15. 用VBA破解Excel密码
  16. springboot 网页聊天室
  17. js实现手机摇一摇功能
  18. Android EditText 只能输入数字
  19. 使用MNE工具包处理脑电数据(1)基础处理总览(EEG、MEG、ERP研究)
  20. 【Windows10】远程桌面共享多个显示屏

热门文章

  1. 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址(1)
  2. ajax保持会话,Ajax请求会话过期处理(JS)
  3. svn 中文语言包的安装
  4. GPS模拟器算法(C#)
  5. 单片机蜂鸣器奏乐代码例子
  6. Ubuntu如何安装GIMP软件
  7. 父与子python第三版,父与子的编程之旅 与小卡特一起学Python 第3版(全彩印刷)...
  8. [洛谷P3444] [POI2006]ORK-Ploughing
  9. 关于解决vensim9.2版本无法显示中文的办法
  10. 解决EXE文件无法打开的问题!