qt之模态窗口

概念介绍

模态窗口:当一个窗口设置为模态窗口时,该窗口会阻塞用户对该窗口所属应用程序下其它部分进行操作。

非模态窗口:当一个窗口为非模态时,简单的理解就是可以不操作该窗口而去操作该应用程序下其它窗口对象,而模态做不到。

接口介绍

exec:dialog调用exec接口会触发模态窗口,

show:dialog调用show接口触发模态还是非模态状态与dialog的Modal状态有关,默认情况下dialog是非模态,此时调用show该窗口就是非模态,若是调用setModal接口设置模态为true,此时调用show就是模态窗口

模态窗口注意事项

模态窗口阻塞有限制范围,重点关注两个属性:

Qt::WindowModal,

Qt::ApplicationModal

这里的WindowModal的含义模态窗口阻塞该窗口对象的父对象及祖先对象,及它父对象的兄弟及祖先对象,对其他对象不会产生阻塞。

ApplicationModal的含义是模态窗口阻塞该应用程序下所有对象,除了该模态窗口,其它都无法操作,作用范围是应用程序级别的,从这里来看明显ApplicationModal限制的范围更广,后续可以根据需求调整dialog的模态作用范围

相关推荐
shylyly_6 小时前
C++中的类型转换
开发语言·c++·匿名对象·隐式类型转换·拷贝优化
北冥you鱼7 小时前
Go 语言新手扫盲:指针 * 和 & 使用场景详解
开发语言·后端·golang
cui_ruicheng7 小时前
Python数据分析(一):数据分析概述与环境搭建
开发语言·python·数据分析
心平气和量大福大7 小时前
C#-WPF-UserControl-生命周期(加载 退出)
开发语言·c#·wpf
sunywz7 小时前
【c#】 Web Deploy一键发布,IIS部署全流程
开发语言·前端·c#
Brilliantwxx8 小时前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
雪的季节8 小时前
Python 线程同步与异步编程 全解析
java·开发语言
Quz8 小时前
QML 与 JavaScript 交互方式:内联函数、外部文件、信号槽与工作线程
javascript·qt
Quz8 小时前
QML ToolTip 组件:延迟提示与自定义外观
qt
520拼好饭被践踏8 小时前
JAVA+Agent学习day22
java·开发语言·后端·学习