Qt show(), showNormal(), showMinimized(),showMaximized()之间的差别和用法,show()函数的核心流程
创始人
2025-05-28 03:11:52
0

函数功能:

  • show():显示继承自QWidget的窗口;
  • showNormal():回归正常状态,一般是指最大化、最小化的恢复;
  • showMinimized():最小化窗口显示,isVisible()为true,isMinimized()为true;
  • showMaximized():最大化窗口显示,isVisible()为true,isMaximized()为true;
    在这里插入图片描述
    实际上,show(), showNormal(), showMinimized(),showMaximized()的visible状态都是true,因为它们都会调用setVisible(true),结果就是对于窗口而言,isVisible()判断返回的是true;对于最小化窗口这里就会有一个小陷阱,我们不能用isVisible()判断,而是必须用isMinimized()判断。

setVisible()函数:

在这里插入图片描述
所有的showXXX函数都是会调用setVisible(true),往里看看:
代码路径:qtbase\src\widgets\kernel\qwidget.cpp
void QWidgetPrivate::setVisible(bool visible) ;
setVisible(true)的主要工作就是:

  1. 更新styleSheet:通过QCoreApplication::sendEvent发送QEvent::Polish
  2. 更新geometry:通过CoreApplication::postEventf发送QEvent::LayoutRequest
  3. 更新resize:通过QCoreApplication::sendEvent发送QResizeEvent
  4. 最终调用show_helper();

更新styleSheet

在这里插入图片描述

更新geometry

在这里插入图片描述

更新resize

在这里插入图片描述
实际调用更新主界面的代码段:
在这里插入图片描述
最终会在show_helper内部发送QUpdateLaterEvent事件,然后通过事件循环机制进行update();

如果你在监控show过程中的事件,那么在updateLater事件前,应该是先处理QEvent::Polish、QResizeEvent,再处理showEvent事件,最终post发送updateLater事件;

且show_helper()会有段代码sendPendingMoveAndResizeEvents(); 保证接受到move和resize事件

相关内容

热门资讯

lua脚本+redis实现限流 定义注解 @RateLimiter @Target(ElementType.METH...
VMware虚拟机群晖7.2 ... VMwar虚拟机群晖7.2 Beta (懒人包)使用方法和之前的版本一样:1.首先解压...
空调安装合同书 空调安装合同书中央空调安装合同(标准版)和家网-全球中文家居门户合同编号: 签约时间: 工程地点:和...
技术服务合同范本   合同编号:______________________  项目名称:______________...
简单的就业合同范本优选19篇 简单的就业合同范本 第一篇甲 方:_______________________(以下简称甲方)乙 ...
《认识几分之一》 教学设计 《认识几分之一》 教学设计  作为一位杰出的老师,很有必要精心设计一份教学设计,教学设计是把教学原理...
【RabbitMQ】Feder... RabbitMQ集群对时间非常敏感,应该在局域网中使用,不应在关于网中使...
SuperMap iMobil... 第一步:创建 Android Studio 项目 第一步:创建 Andr...
23年PMP考试备考:易混淆知... PMP考试即将到来,为便于在考试前查漏补缺,给大家准备了PMP考试中常考...
装修公司合同范本推荐66篇 装修公司合同范本 第一篇发包人:甲方承包人:乙方依照《xxx合同法》、《xxx建筑法》及其它有关法律...
租赁合同范本大全推荐13篇 租赁合同范本大全 第一篇出租人(甲方):____________证件类型及编号:__________...
辽宁工程技术大学专科什么专业... 辽宁工程技术大学专科什么专业适合女生?内蒙理科生419分(中国大学网 )选择社科专业都可以比如广告,...
五年级语文《松鼠》教学设计 五年级语文《松鼠》教学设计  松鼠是一种很讨人喜欢的小动物。下面由小编为您整理出的五年级语文《松鼠》...
大数据框架之Hadoop:Ma... 3.6.1OutputFormat接口实现类 OutputFormat是MapReduce输出的基类...
教学计划 精选教学计划模板8篇  日子如同白驹过隙,不经意间,我们又将学习新的知识,有新的感受,这也意味着,又...
一上《an en in un... 一上《an en in un ün》第二课时教学设计人教版  作为一名教学工作者,时常需要用到教学设...
分数乘整数教学反思 分数乘整数教学反思  分数乘整数教学反思(一)  在教学分数乘整数之前,班里已经有不少学生知道了分数...
免费搭建个人博客 免费搭建个人博客,并发布到公网 利用hexo搭建个人博客,通过gitee的pages...
活累些好 活累些好活累些好 肖金华 碰到朋友或老同学,总是关切地劝我:“别活得太累,出去走走。”并且眼睛盯着一...
TCP四次挥手 目录 什么是TCP四次挥手 ?  TCP 四次挥手过程是怎样的? 为什么挥手需要四次&...