qt之模态窗口

概念介绍

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

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

接口介绍

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

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

模态窗口注意事项

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

Qt::WindowModal,

Qt::ApplicationModal

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

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

相关推荐
caimouse18 分钟前
ReactOS 图形系统分析(17):区域填充 — EngPaint / IntEngPaint(paint.c)
c语言·开发语言·算法
北风toto25 分钟前
研发效能与后端核心技术全景指南:从CI/CD到共性组件实战
java·开发语言·ci/cd
Billy1213827 分钟前
Day12-C++20 Coroutines(上):协程原理与Promise/Awaitable机制
开发语言·c++进阶学习
01二进制代码漫游日记29 分钟前
C++基础入门速通
java·开发语言·c++
Herbert_hwt30 分钟前
第六章 Java深入理解接口、函数式接口与lambda表达式
java·开发语言·算法
橙橙笔记1 小时前
C++的学习第三部分
开发语言·c++·学习
2603_965148119 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
知无不研12 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
cfm_291413 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
C++ 老炮儿的技术栈14 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐