当前位置: 首页 > article >正文

Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示

1、现象:当Qt的窗口最小化时,isVisible值一定是true,这是正常的。

解释:在Qt中,当你点击窗口的最小化按钮时,Qt内部不会自动调用 hide() 方或 setVisible(false) 来隐藏窗口。相反,它会改变窗口的状态,将其标记为最小化。窗口的最小化是一个特殊的状态,不同于被显式隐藏。在最小化状态下,窗口的内容不再显示在屏幕上,但它仍然存在于系统中,并且可以通过操作系统恢复显示。Qt通过 isMinimized() 方法提供了检测窗口是否处于最小化状态的能力。

2、isVisible() 方法在以下情况下返回 true

  • 窗口已经被创建并且没有被调用 hide() 方法隐藏。
  • 窗口没有被父窗口(如果有的话)隐藏或遮挡到不可见。
  • 窗口没有被操作系统级别的其他窗口遮挡到不可见(这通常取决于窗口管理器和操作系统的行为,但 isVisible() 本身不考虑这一点)。

isVisible() 方法在以下情况下返回 false

  • 窗口被显式调用 hide() 方法隐藏。
  • 窗口被其父窗口隐藏(如果父窗口被隐藏,通常子窗口也会被隐藏,除非它们被设置为独立于父窗口显示)。
  • 窗口被关闭(即调用了 close() 方法)。注意,关闭窗口通常会触发窗口的销毁,但在某些情况下(比如设置了 Qt::WA_DeleteOnClose 属性为 false),窗口可能仍然存在但不可见。

 总结一下,isVisible() 方法主要用于检测窗口是否存在且没有被显式隐藏,而 isMinimized() 方法用于检测窗口是否被最小化。这两个方法提供了不同的信息,应该根据具体需求使用。

3、测试

//.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();QMainWindow* m_window{nullptr};
protected:void changeEvent(QEvent *event)override;
}
//.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->m_btn,&QPushButton::clicked,this,&MainWindow::OpenWindow);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::changeEvent(QEvent *event)
{QMainWindow::changeEvent(event);if (event->type() == QEvent::WindowStateChange) {if (isMinimized()) {qDebug() << "Window is minimized";qDebug() << "Visible1:----" << isVisible();hide();qDebug() << "Visible2:---- " << isVisible();} else if (isVisible()) {qDebug() << "Window is visible";}}
}

运行结果:

(1)点击最小化按钮时,打印如下:

(2)Visible为true时任务栏程序图标

(3)Visible为false时任务栏无程序图标

4、判断窗口显示在屏幕上方法

void MainWindow::changeEvent(QEvent *event)
{QMainWindow::changeEvent(event);if (event->type() == QEvent::WindowStateChange) {if (isVisible() && !isMinimized()) {//值是1,窗口就是显示qDebug() << "Window is visible and not minimized";} else if (!isVisible()) {qDebug() << "Window is hidden";} else if (isMinimized()) {qDebug() << "Window is minimized";}}
}

窗口非最小化且非隐藏状态即为显示状态,上面的判断窗口是否显示在屏幕上也可以主动调用isVisible() && !isMinimized()接口的值来判断。

 

相关文章:

Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示

1、现象&#xff1a;当Qt的窗口最小化时&#xff0c;isVisible值一定是true&#xff0c;这是正常的。 解释&#xff1a;在Qt中&#xff0c;当你点击窗口的最小化按钮时&#xff0c;Qt内部不会自动调用 hide() 方或 setVisible(false) 来隐藏窗口。相反&#xff0c;它会改变窗口…...

Unity-Mirror网络框架-从入门到精通之LagCompensation示例

文章目录 前言什么是滞后补偿Lag Compensation示例延迟补偿原理ServerCubeClientCubeCapture2DSnapshot3D补充LagCompensation.cs 独立算法滞后补偿器组件注意:算法最小示例前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mir…...

Jenkins 通过 Execute Shell 执行 shell 脚本 七

Jenkins 通过 Execute Shell 执行 shell 脚本 七 一、创建 .sh 文件 项目目录下新建 .sh 文件 jenkins-script\shell\ci_android_master.sh添加 Execute Shell 模块 在 Command 中添加 # 获取 .sh 路径 CI_ANDROID_MASTER_PATH"${WORKSPACE}/jenkins-script/shell/…...

PyCharm 批量替换

选择替换的内容 1. 打开全局替换窗口 有两种方式可以打开全局替换窗口&#xff1a; 快捷键方式&#xff1a; 在 Windows 或 Linux 系统下&#xff0c;按下 Ctrl Shift R。在 Mac 系统下&#xff0c;按下 Command Shift R。菜单操作方式&#xff1a;点击菜单栏中的 Edit&…...

Linux-文件基本操作

1.基本概念 文件: 一组相关数据的集合 文件名: 01.sh //文件名 2.linux下的文件类型 b block 块设备文件 eg: 硬盘 c character 字符设备文件 eg: 鼠标&#xff0c;键盘 d directory 目录文件 eg: 文件夹 - regular 常规文件…...

HTTP 请求头、响应头常见字段分析

目录 请求头AcceptAccept-EncodingUser-AgentConnectionCache-ControlHost 响应头Content-EncodingETagContent-TypeVaryx-business-use-case-usageAccess-Control-Allow-Originfacebook-api-versionStrict-Transport-SecurityPragmaCache-ControlExpiresx-fb-request-id 和 x-…...

postman登录cookie设置

1.设置环境变量&#xff0c; 定义变量存放共享的登录信息 如Cookie 2.登录接口编码test脚本获取cookie信息 let jsessionidCookie pm.cookies.get("JSESSIONID");if (jsessionidCookie) {let cookie "JSESSIONID" jsessionidCookie "; Admin-Tok…...

Oracle临时表空间(基础操作)

临时表空间 临时表空间&#xff1a;用来存放用户的临时数据&#xff0c;临时数据在需要时被覆盖&#xff0c;关闭数据库后自动删除&#xff0c;其中不能存放永久性数据。 用户进程和服务器进程是一对一的叫做专用连接。 任何一个用户连到oracle数据库&#xff0c;oracle都会…...

数据结构-基础

1、概念&#xff1a; 程序 数据结构 算法 2、程序的好坏 可读性&#xff0c;稳定性&#xff0c;扩展性&#xff0c;时间复杂度&#xff0c;空间复杂度。 3、数据结构 是指存储、组织数据的方式&#xff0c;以便高效地进行访问和修改。通过选择适当的数据结构&#xff0c; 能…...

2024年博客之星年度评选—主题文章创作评审文章得分公布

博客之星活动地址&#xff1a;https://www.csdn.net/blogstar2024 创作影响力评审入围名单&#xff1a;https://blogdev.blog.csdn.net/article/details/145189549 目录 主题文章创作评审得分排名 主题文章创作说明 主题文章评选说明 创作影响力评审主题文章创作评审目前排名 博…...

【科技时讯】2025年2月13日科技新闻速递

文章目录 2025年2月13日科技新闻速递1. OpenAI宣布GPT系列重大升级计划2. 华为云推出DeepSeek V3/R1满血版模型3. 全球科技行业动态4. 国内科技企业动态5. 数字经济与统计制度革新6. 资本市场与科技股表现7. 科技新闻逻辑关系图 2025年2月13日科技新闻速递 1. OpenAI宣布GPT系…...

AGI的基石:什么是机器学习

什么是机器学习&#xff1a;机器学习是人工智能的子集&#xff0c;深度学习是其重要的组成部分&#xff0c;包括不限于&#xff1a;deep neural networks 、deep belief networks和recurrent neural networks。在深度学习中&#xff0c;有三种基本的神经网络架构&#xff1a;FF…...

SQL布尔盲注+时间盲注

1.布尔盲注 双重for循环 import requestsurl http://127.0.0.1/sqli-labs-master/Less-8/index.phpdef database_name():datebasename for i in range(1, 9): # 假设数据库名称最多8个字符for j in range(32, 128): # ascii 可见字符范围从32到127payload f"?id1 A…...

2024-2025年主流的开源向量数据库推荐

以下是2024-2025年主流的开源向量数据库推荐&#xff0c;涵盖其核心功能和应用场景&#xff1a; 1. Milvus 特点&#xff1a;专为大规模向量搜索设计&#xff0c;支持万亿级向量数据集的毫秒级搜索&#xff0c;适用于图像搜索、聊天机器人、化学结构搜索等场景。采用无状态架…...

Mysql中使用sql语句生成雪花算法Id

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…...

MySQL - 索引 - 介绍

索引(Index)是帮助数据库高效获取数据的数据结构. 结构 语法 创建索引 creat [unique] index 索引名 on 表名 (字段名, ...); //创建唯一索引时加上unique, 多个字段用逗号隔开 查看索引 show index from 表名; 删除索引 drop index 索引名 on 表名;...

XSS 常用标签及绕过姿势总结

XSS 常用标签及绕过姿势总结 一、xss 常见标签语句 0x01. 标签 <a href"javascript:alert(1)">test</a> <a href"x" onfocus"alert(xss);" autofocus"">xss</a> <a href"x" onclickeval(&quo…...

Springboot中添加原生websocket支持

1、添加配置 Configuration EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer {Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {// 注册WebSocket处理器&#xff0c;并允许所有来源的连接&#xff08;在生…...

财务主题数据分析-企业盈利能力分析

企业盈利能力数据主要体现在财务三张表中的利润表里面&#xff0c;盈利能力需要重点需要关注的指标有&#xff1a;毛利率、净利率、净利润增长率、营业成本增长率等&#xff1b; 接下来我们分析一下某上市公司披露的财务数据&#xff0c;看看该企业盈利能力如何&#xff1a; …...

你需要了解的远程登录协议——Telnet

你需要了解的远程登录协议——Telnet 一. 什么是Telnet&#xff1f;二. Telnet的优缺点三. Telnet vs SSH&#xff1a;哪一个更适合&#xff1f;四. Telnet的应用场景 前言 点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有惊喜。 作者&#xff1a;神…...

Git -> Git配置密钥对,并查看公钥

Git密钥对的核心作用 私钥 (id_rsa) 你的数字身份证&#xff1a;存放在本机 ~/.ssh 目录下必须严格保密&#xff08;类似银行卡密码&#xff09;&#xff0c;不可泄露或共享用于 解密 来自服务器的加密信息 公钥 (id_rsa.pub) 可公开的验证锁&#xff1a;需要上传到 Git 服…...

web逆向企鹅音乐,下载歌手歌单音乐

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 下载资源链接&#xff1a;https://download.csdn.net/download/randy521520/90374039 一、找出需要加密的参数 1.js运行 atob…...

stm32 lwip tcp服务端频繁接收连接失效问题解决(tcp_recved)

一、问题描述 最近用stmf429单片机作为TCP服务端遇到一个问题&#xff0c;就是客户端特别频繁的发送消息&#xff0c;过一段时间以后&#xff0c;客户端的请求不再被客户端接收到&#xff0c;而且服务器端监控的掉线回调函数也不会被调用&#xff0c;好像这个连接就凭空的消失…...

Python Pandas(7):Pandas 数据清洗

数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况&#xff0c;如果要使数据分析更加准确&#xff0c;就需要对这些没有用的数据进行处理。数据清洗与预处理的常见步骤&#xff1a; 缺失值处理&#xff1a;识别并…...

【重构谷粒商城】06:Maven快速入门教程

重构谷粒商城06——Maven快速入门教程 前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶到…...

Elasticsearch:同义词在 RAG 中重要吗?

作者&#xff1a;来自 Elastic Jeffrey Rengifo 及 Toms Mura 探索 RAG 应用程序中 Elasticsearch 同义词的功能。 同义词允许我们使用具有相同含义的不同词语在文档中搜索&#xff0c;以确保用户无论使用什么确切的词语都能找到他们所寻找的内容。你可能会认为&#xff0c;由于…...

React 低代码项目:组件设计

React 低代码项目&#xff1a;组件设计 Date: February 6, 2025 React表单组件 **目标&#xff1a;**使用 Ant Design 表单组件&#xff0c;开发登录、注册、搜索功能 内容&#xff1a; 使用 React 表单组件、受控组件使用 Ant Design 表单组件使用 表单组件的校验和错误提…...

从0到1的回溯算法学习

回溯算法 前言这个算法能帮我们做啥算法模版力扣例题&#xff08; 以下所有题目代码都经过力扣认证 &#xff09;形式一 元素无重不可复选46.全排列思路详解代码 77.组合思路详解代码 78.子集思路详解代码 形式二 元素可重不可复选思考&#xff08;deepseek&#xff09;核心思想…...

24、深度学习-自学之路-卷积神经网络

一、你怎么理解卷积神经网络呢&#xff0c;我的理解是当你看一个东西的时候&#xff0c;你的眼睛距离图片越近&#xff0c;你看到的东西就越清晰&#xff0c;但是如果你看到的图片只是整个物体的一小部分&#xff0c;那么你将不知道你看到的物品是什么&#xff0c;因为关注整体…...

AVL树:高效平衡的二叉搜索树

&#x1f31f; 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。&#x1f31f; 引言&#x1f914; 在数据结构的奇妙世界里&#xff0c;二叉搜索树&#xff08;BST&#xff09;原本是查找数据的好帮手。想象一下…...