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

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;它会改变窗口…...

Github 2025-02-12 C开源项目日报 Top7

根据Github Trendings的统计,今日(2025-02-12统计)共有7个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目7Python项目2OpenSSL - 强大的开源加密工具包 创建周期:4012 天开发语言:C协议类型:Apache License 2.0Star数量:23449 个Fork数量:10…...

PostgreSQL 数据类型

PostgreSQL 数据类型 PostgreSQL 是一款功能强大的开源关系型数据库管理系统,它以其出色的性能、灵活的数据类型和强大的扩展性而闻名。在 PostgreSQL 中,数据类型是构建数据库表和执行各种操作的基础。本文将详细介绍 PostgreSQL 中常用的数据类型,并探讨它们的使用场景。…...

synchronized关键字

文章目录 synchronized 关键字介绍synchronized 的内存语义 synchronized 关键字介绍 synchronized 块是 Java 提供的一种原子性 内 置锁&#xff0c; Java 中的每个对象都可以把它当作一个 同步锁来使用 &#xff0c; 这些 Java 内置的使用者看不到的锁被称为内部锁 &#xf…...

MATLAB计算反映热需求和能源消耗的度数日指标(HDD+CDD)(全代码)

目录 度数日(Degree Days, DD)概述计算公式MATLAB计算代码调用函数1:计算单站点的 CDD参考度数日(Degree Days, DD)概述 度数日(Degree Days, DD)是用于衡量建筑、城市和地区的热需求和能源消耗模式的指标。它分为两部分: 加热度日(Heating Degree Days, HDD):当室…...

在Linux中Redis不支持lua脚本的处理方法

redis安装在IP为x.x.x.x的服务器上 redis安装 第一步&#xff0c;安装前&#xff0c;检测系统是否安装了redis。若安装了redis&#xff0c;则需要删除redis&#xff1b;若没有安装redis&#xff0c;则需要安装2.6版本以上的redis。 # 确保Redis版本支持Lua脚本。从Redis 2.6…...

第39周:猫狗识别 2(Tensorflow实战第九周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 5.1 上次程序的主要Bug 5.2 修改版…...

SpringBoot自定义starter

首先创建Maven项目 引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>3.4.2</version></dependency> </dependencies…...

JVM学习

JVM 1、JVM是一个跨语言的平台&#xff0c;与语言无关 2、java虚拟机规范&#xff1a;一流企业做标准&#xff0c;二流企业做品牌&#xff0c;三流企业做产品 JVM种类 Hotspot&#xff1a;Oracle 公司&#xff0c;有商业版和免费版 open jdk 内部包含免费版本hotspot虚拟机 Jr…...

RAG入门: RetroMAE、BGE、M3、MemoRAG

RAG实际上第一步都是先做Retrieval&#xff0c;关于Retrieval的思路有很多&#xff0c;持续更新&#xff1a; RetroMAE &#xff08;论文RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder&#xff09; RetraoMAE包括两个模块&#xff0c;…...

ruby 的安装

在51cto搜索的资料 ruby on rails的安装 http://developer.51cto.com/art/200906/129669.htm http://developer.51cto.com/art/200912/169391.htm http://developer.51cto.com/art/200908/147276.htm 史上最完整的ruby&#xff0c;rails环境架设配置&#xff08;Apachefast…...

MySQL的备份与还原

备份数据库 使用mysqldump工具是备份MySQL数据库的一种常用方法。mysqldump可以导出数据库的结构和数据到一个SQL文件中&#xff0c;这个文件稍后可以被用来重新创建数据库或恢复数据。以下是mysqldump命令的详细扩写&#xff1a; mysqldump -u <username> -p<passw…...

文心快码|AI重构开发新范式,从工具到人机协同

本系列视频来自百度前端架构师张立理&#xff0c;他在以“应用来了”为主题的2024百度世界大会上&#xff0c;进行了文心快码3.0能力演示&#xff0c;端到端能力展示。 以下视频是关于文心快码全栈编程智能体-AI重构开发新范式 文心快码AI重构开发新范式 百度前端架构师张立理认…...

Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程

系统版本&#xff1a;Windows 11 依赖环境&#xff1a;Anaconda3 运行软件&#xff1a;PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…...

方法(构造方法、方法重载、可变参数)

方法&#xff08;Method&#xff09; 方法是组织好的、可以重复使用的代码块&#xff0c;用于实现单一或相关联的功能。方法有助于提高代码的模块化和可读性&#xff0c;并且通过减少代码冗余来促进代码的重用。 一个方法通常包含5中部分组成&#xff1a; 访问修饰符&#xf…...

ES节点配置的最佳实践

一个 Elasticsearch&#xff08;ES&#xff09;节点可以同时包含数据节点和主节点的角色。这种配置在某些场景下是可行的&#xff0c;尤其是在小型集群中。然而&#xff0c;在生产环境中&#xff0c;通常建议将主节点和数据节点的角色分离&#xff0c;以提高集群的稳定性和性能…...

langchain学习笔记之langserve服务部署

langchain学习笔记之langserve服务部署 引言 LangServe \text{LangServe} LangServe简单介绍安装过程示例应用调用模型接口实现交互使用 Requests \text{Requests} Requests方式进行交互 附&#xff1a; server.py \text{server.py} server.py完整代码 引言 本节将介绍 LangSe…...

Docker安装分布式vLLM

Docker安装分布式vLLM 1 介绍 vLLM是一个快速且易于使用的LLM推理和服务库&#xff0c;适合用于生产环境。单主机部署会遇到显存不足的问题&#xff0c;因此需要分布式部署。 分布式安装方法 https://docs.vllm.ai/en/latest/serving/distributed_serving.html2 安装方法 …...

Java SpringBoot的ProblemDetail实现全局异常统一处理让接口不在需要catch/ProblemDetail实现错误处理的标准化

在开发 Web 应用时&#xff0c;有效的错误处理和响应是提升用户体验和系统健壮性的关键。Spring Boot 3.2 引入了对 ProblemDetail 的更好支持&#xff0c;使得错误处理更加标准化和便捷。本文将通过实战演示&#xff0c;带你深入了解如何在 Spring Boot 3.2 中使用 ProblemDet…...

PHP 基础介绍

PHP 学习资料 PHP 学习资料 PHP 学习资料 PHP 是一种广泛使用的开源服务器端脚本语言&#xff0c;尤其适合 Web 开发&#xff0c;能轻松嵌入 HTML 中&#xff0c;生成动态网页内容。接下来&#xff0c;让我们一起了解 PHP 的基础内容。 一、PHP 的安装与配置 在开始编写 PH…...

CI/CD部署打包方法

项目目前部署方式&#xff1a; 各地区服务器打包同一个runner&#xff08;需要互相排队&#xff0c;不并发&#xff09;各地区客户端可以并发打包&#xff0c;同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner&#xff1a; https://docs.gitlab.com/runner/insta…...

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

文章目录 前言示例介绍PlayerReliable,PlayerUnreliable,PlayerHybrid区别PlayerControllerRB和PlayerController区别最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主…...

C++ 设计模式-抽象工厂

C中的抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用来创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。通过抽象工厂模式&#xff0c;客户端可以通过工厂接口获取一系列产…...

ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览

ONES Copilot 支持基于当前查看的工作项相关信息&#xff0c;利用 AI 模型&#xff0c;在系统中进行相似工作项的查找&#xff0c;包括基于已关联工作项的相似数据查找。 应用场景&#xff1a; 在查看工作项时&#xff0c;可利用 AI 模型&#xff0c;基于语义相似度&#xff0c…...

Jenkins | Jenkins安装

Jenkins安装 一、前置准备二、启动三、登录 一、前置准备 下载安装包 war包 下载地址: https://www.jenkins.io/ 安装jdk 要求jdk11版本以上 集成maven项目的话 需要有maven 与 git 二、启动 启动命令 需要注意使用jdk11以上的版本 /usr/java/jdk17/bin/java -Xms2048m -X…...

JavaScript设计模式 -- 观察者模式

在实际开发中&#xff0c;经常会遇到这样一种需求&#xff1a;当某个对象状态发生改变时&#xff0c;需要自动通知并更新其他相关对象。观察者模式&#xff08;Observer Pattern&#xff09;正是为了解决这一问题而设计的&#xff0c;它定义了一种一对多的依赖关系&#xff0c;…...

DeepSeek AI 满血版功能集成到WPS或Microsoft Office中

DeepSeek AI集成到 WPS或Microsoft Office中, 由于deepseek被攻击或者非常繁忙导致超时的服务器&#xff0c;所以可以用硅基流动部署的DeepSeek 。当然用官网的也可以。 使用 OfficeAI 插件集成(wps为例)&#xff1a; 下载并安装 OfficeAI 插件&#xff1a;从可靠的软件下载平台…...

单调队列与栈

一.题 1. 思路&#xff1a; 构建小压大的单调递减栈&#xff0c;对于每个栈的元素都进行处理并加到结果上 class Solution { public:int sumSubarrayMins(vector<int>& arr) {int stk[10000000],top 0;long long ans 0;for(int i 0;i<arr.size();i){while(top…...

阿里云sls查询两种查询方式学习:SQL查询和SPL 查询

一、阿里云日志服务 SPL 语法归纳 1. SPL 简介 SPL&#xff08;Search Processing Language&#xff09;用于查询和处理日志数据&#xff0c;支持检索、过滤、分析日志。 2. 基本查询语法 查询所有日志&#xff1a;* 条件过滤&#xff1a;response_status: error 多条件查…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析①】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase01 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月14日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-001测试用例 用例ID测试场景验证要点参考条款预期…...

从技术债务到架构升级,滴滴国际化外卖的变革

背 景 商家营销简述 在外卖平台的运营中&#xff0c;我们致力于通过灵活的补贴策略激励商家&#xff0c;与商家共同打造良好的合作关系&#xff0c;也会提供多样化的营销活动&#xff0c;帮助商家吸引更多用户下单。通过这些活动&#xff0c;不仅能够提高商家的销量&#xff0c…...

第J2周:ResNet50V2算法实战与解析

文章目录 一、准备工作1.设置GPU2.导入数据3.查看数据 二、数据预处理1.加载数据2.可视化数据 总结 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1.设置GPU import tensorflow as tf gpus …...

如何使用 HPjtune 分析 Java GC 日志并优化 JVM 性能

HPjtune 是一款用于分析 Java 应用程序垃圾回收&#xff08;GC&#xff09;日志的工具&#xff0c;主要用于优化 JVM 性能。虽然 HPjtune 本身并不直接生成 HTML 格式的报告&#xff0c;但可以通过结合其他工具或方法将分析结果导出为 HTML 格式。以下是实现这一目标的步骤和方…...

【MySQL在Centos 7环境安装】

文章目录 一. 卸载不必要的环境二. 检查系统安装包三. 卸载这些默认安装包四. 获取mysql官⽅yum源五. 安装mysql yum 源&#xff0c;对⽐前后yum源六. 看看能不能正常⼯作七. 安装mysql服务八. .查看配置⽂件和数据存储位置九. 启动服务并查看服务是否存在十. 登陆⽅法十一. 设…...

PostgreSQL技术内幕25:时序数据库插件TimescaleDB

文章目录 0.简介1.基础知识1.1 背景1.2 概念1.3 特点 2.TimescaleDB2.1 安装使用2.1 文件结构2.2 原理2.2.1 整体结构2.2.2 超表2.2.3 自动分区2.2.4 数据写入与查询优化2.2.5 数据保留策略2.2.6 更多特性 0.简介 现今时序数据库的应用场景十分广泛&#xff0c;其通过保留时间…...

Flask Web开发的重要概念和示例

一口气列举Flask Web应用的所有概念和示例 Flask Web 应用基本框架 路由(Routing) 模版(Template) request 对象 JSON 数据处理 redirect 示例 文件上传示例 文件下载示例 Session 示例 Cookie操作 Flask Web 应用基本框架 这是一个 最基础的 Flask Web 应用,…...

使用pocketpal-ai在手机上搭建本地AI聊天环境

1、下载安装pocketpal-ai 安装github的release APK 2、安装大模型 搜索并下载模型&#xff0c;没找到deepseek官方的&#xff0c;因为海外的开发者上传了一堆乱七八糟的deepseek qwen模型&#xff0c;导致根本找不到官方上传的……deepseek一开源他们觉得自己又行了。 点击之…...

后台终端方法

使用tmux实现终端后台运行 首先&#xff0c;在Linux系统上安装tmux sudo apt install tmux使用方法&#xff1a; 创建终端 #直接创建 tmux #自定义名称 tmux new -s {name}退出tmux终端&#xff1a;Ctrlb 之后 d 退出后查看后台终端&#xff1a; tmux ls abc: 1 windows (cr…...

为什么vue3需要对引入的组件使用markRaw?

在Vue 3中&#xff0c;对引入的组件使用markRaw的主要原因是为了避免Vue的响应式系统对该组件实例进行不必要的代理和追踪。Vue 3的响应式系统是基于Proxy实现的&#xff0c;它会对数据进行代理以追踪其变化&#xff0c;并在数据变化时自动更新视图。然而&#xff0c;在某些情况…...

AWS上基于Llama 3模型检测Amazon Redshift里文本数据的语法和语义错误的设计方案

一、技术栈选型 核心服务&#xff1a; Amazon Redshift&#xff1a;存储原始文本和检测结果Amazon Bedrock&#xff1a;托管Llama 3 70B模型AWS Lambda&#xff1a;无服务计算&#xff08;Python运行时&#xff09;Amazon S3&#xff1a;中间数据存储AWS Step Functions&…...

深度学习-114-大语言模型应用之提示词指南实例DeepSeek使用手册(三)

文章目录 1 提示词指南1.1 生成模型提示词1.2 角色扮演1.3 文案大纲生成1.4 情景续写1.5 宣传标语生成1.6 中英翻译专家1.7 诗歌创作1.8 结构化输出1.9 内容分类1.10 散文写作1.11 代码生成1.12 代码改写1.13 代码解释2 不同类型的提示词2.1 营销推广类(5个)2.2 内容创作类(24个…...

Springboot_实战

项目开发 lombok使用 自动为实体类提供get、set、toString方法 引入依赖 实体类上添加注解 统一响应结果 注意要写get、set方法&#xff1b;下面是错误的&#xff0c;因此要加上Data注解 一个注册的接口的示例 Controller层 Service层 Mapper层 参数校验 但是同样存在一…...

【第5章:深度生成模型— 5.4 深度生成模型前沿全景:从Diffusion到多模态,揭秘AI生成技术的未来】

生成模型正在经历一场前所未有的革命!从震惊AI圈的DALLE 2到刷屏朋友圈的Stable Diffusion,这些模型展现出的创造力已经突破了我们的想象边界。今天,我们就来一场深度探索之旅,揭开生成模型最前沿研究的神秘面纱,看看AI生成技术的未来会走向何方。 (本文包含大量前沿技术…...

【微服务学习二】nacos服务发现与负载均衡

nacos服务发现 想要开启服务发现&#xff0c;需要在main函数上添加 EnableDiscoveryClient 注解 然后我们编写一个controller类来查询nacos中注册的所有微服务以及对应的ip端口号 Controller public class DiscoveryController {AutowiredDiscoveryClient discoveryClient;//…...

信息安全管理(3):网络安全

1 网络的定义和特征 1.1 网络的定义 &#xff08;根本懒得说。。你们自己wiki吧&#xff09; 网络的用处 What is a network…Devices in a network…LAN, WAN and InternetworksWhat do networks do for you… Sharing resourcesUse/share applications 1.2 网络的特征 C…...

如何设置linux系统时间?

在 Linux 系统中&#xff0c;可以通过不同的方法来设置系统时间&#xff0c;下面详细介绍几种常见的方式。 目录 方法一&#xff1a;使用date命令手动设置时间 方法二&#xff1a;同步硬件时钟&#xff08;BIOS 时钟&#xff09; 方法三&#xff1a;使用timedatectl命令设置…...

ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、环境信息二、部署步骤2.1 基础环境准备2.2 各节点docker环境安装2.3 搭建互信集群2.4 下载ceph-ansible 三、配置部署文件3.1 使用本地docker3.2 配置hosts…...

几款C#开发的入门书籍与视频教程

以下是几本适合C#初学者的书籍和一些优质的视频教程推荐&#xff0c;帮助你快速入门C#开发&#xff1a; 书籍推荐 1. 《C#入门经典》 • 作者&#xff1a;Karli Watson, Christian Nagel 等 • 特点&#xff1a;经典的C#入门书籍&#xff0c;内容全面&#xff0c;从基础语法到…...

XZ_Mac电脑上本地化部署DeepSeek的详细步骤

根据您的需求&#xff0c;以下是Mac电脑上本地化部署DeepSeek的详细步骤&#xff1a; 一、下载并安装Ollama 访问Ollama官网&#xff1a; 打开浏览器&#xff0c;访问 Ollama官网。 下载Ollama&#xff1a; 在官网中找到并点击“Download”按钮&#xff0c;选择适合Mac系统的…...

el-input输入框样式修改

el-input输入框样式修改 目的&#xff1a;蓝色边框去掉、右下角黑色去掉(可能看不清楚) 之前我试过deep不行 最有效的办法就是就是在底部添加一下css文件 代码中针对input的type为textarea&#xff0c;对于非textarea&#xff0c;只需将下面的css样式中的textarea替换成input…...