QT<30> Qt中使鼠标变为转圈忙状态

前言:当我们在写软件时,在等待阻塞耗时操作时可以将鼠标变为忙状态,并在一段时间后恢复状态,可以用到GxtWaitCursor:Qt下基于RAII的鼠标等待光标类。

一、效果演示

二、详细代码

在项目中添加C++文件,命名为GxtWaitCursor,继承自QObject。

#pragma once#include <QObject>//=======================================================================================
// 等待光标类
//=======================================================================================
class GxtWaitCursor : public QObject
{Q_OBJECTpublic:/***  构造函数:使光标进入忙录状态*/GxtWaitCursor(QObject *parent = nullptr);/***  构造函数:使光标进入忙录状态并于指定时长后恢复*/GxtWaitCursor(int msec, QObject *parent = nullptr);/***  析构函数:恢复光标*/~GxtWaitCursor();private:void beginWait(int msec = 0);void endWait();private:/***  光标是否已经恢复*/bool m_cursorHasRestored { false };
};
#include <QTimer>
#include <QCursor>
#include <QGuiApplication>
#include "gxtwaitcursor.h"//=======================================================================================
GxtWaitCursor::GxtWaitCursor(QObject *parent): QObject(parent)
{beginWait();
}//=======================================================================================
GxtWaitCursor::GxtWaitCursor(int msec, QObject *parent): QObject(parent)
{beginWait(msec);
}//=======================================================================================
GxtWaitCursor::~GxtWaitCursor()
{endWait();
}//=======================================================================================
void GxtWaitCursor::beginWait(int msec)
{m_cursorHasRestored = false;QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));if (msec > 0){QTimer::singleShot(msec, [this]{if (!m_cursorHasRestored){QGuiApplication::restoreOverrideCursor();m_cursorHasRestored = true;}});}
}//=======================================================================================
void GxtWaitCursor::endWait()
{if (!m_cursorHasRestored){QGuiApplication::restoreOverrideCursor();m_cursorHasRestored = true;}
}

在需要使用的地方,实例化该类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pom.xml和spring-config.xml

pom.xml: Spring的pom.xml文件是Maven项目中的核心配置文件&#xff0c;它并非直接由Spring框架提供&#xff0c;但Spring项目&#xff08;包括Spring Boot&#xff09;通常会使用pom.xml来管理项目的依赖、插件和构建配置。这一点得到了广泛的社区支持和官方文档的确认。在Sp…

Ubuntu20.04 为脚本文件创建桌面快捷方式 ubuntu

Ubuntu20.04 为脚本文件创建桌面快捷方式 在Ubuntu 20.04中&#xff0c;为脚本文件&#xff08;如 .sh 文件&#xff09;创建桌面快捷方式是一种提升用户效率的实用方法&#xff0c;允许用户通过图形用户界面直接执行重要或常用的脚本。以下是一种详细、专业且逻辑清晰的通用方…

等保测评怎么做?具体流程是什么?

等保测评是对信息系统进行等保&#xff08;等级保护&#xff09;安全评测的过程。等保是指对信息系统进行等级化保护管理&#xff0c;目的是提高信息系统的安全性&#xff0c;防止信息泄露、篡改、破坏等安全问题。哈尔滨等保测评按照《中华人民共和国网络安全法》及《信息安全…

【云计算解决方案面试整理】3-7主流云计算平台、云计算架构、安全防护

准备面云计算解决方案的岗位,整理了一些,也请大佬们指点。 文档分为 云计算基础概念、云计算技术原理、主流云计算平台(以天翼云为例)、云计算架构(弹性设计、高可用设计、高性能设计)、安全防护几个方面。 三、主流云计算平台 1.阿里云云计算平台 强大的计算能力:拥有…

什么是CRM系统?

越来越多的企业意识到&#xff1a;如何有效管理与客户的关系、提升客户满意度&#xff0c;并通过这些提升推动销售增长&#xff0c;已经成为许多公司亟待解决的问题。为此&#xff0c;客户关系管理&#xff08;Customer Relationship Management&#xff0c;简称CRM&#xff09…

【青牛科技】 GC6153——TMI8152 的不二之选,可应用于摇头机等产品中

在电子工程领域&#xff0c;不断寻求性能更优、成本更低的解决方案是工程师们的永恒追求。今天&#xff0c;我们要为广大电子工程师带来一款极具竞争力的产品 —— GC6153&#xff0c;它将成为 TMI8152 的完美替代之选。 一、产品背景 随着科技的飞速发展&#xff0c;电子设备…

自動換IP為什麼會不穩定?

自動換IP可能導致不穩定的原因有以下幾點&#xff1a; 1. 連接中斷 自動換IP的一個直接後果就是連接中斷。每當IP地址發生變化時&#xff0c;網路連接可能會短暫中斷。這就像你在搬家時&#xff0c;暫時無法接收郵件一樣。對於需要持續連接的任務&#xff0c;比如視頻會議或線…

JS 实现游戏流畅移动与按键立即响应

AWSD 按键移动 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.box1 {width: 400px;height: 400px;background: yellowgreen;margin: 0 auto;position: relative;}.box2 {width: 50px;height:…

服务器上安装Orcale数据库以及PL SQL工具(中文)

一、前期准备 1、oracle数据库安装包–>Oracle下载地址&#xff0c;版本根据当时情况就下最新的就行&#xff0c;下载时间可能有点长&#xff0c;耐心点。 2、PL SQL工具下载地址–>PL SQL下载地址&#xff0c;百度网盘可以共享【限速&#xff0c;没办法&#xff01;&am…

javaWeb小白项目--学生宿舍管理系统

目录 一、检查并关闭占用端口的进程 二、修改 Tomcat 的端口配置 三、重新启动 Tomcat 一、javaw.exe的作用 二、结束javaw.exe任务的影响 三、如何判断是否可以结束 结尾&#xff1a; 这个错误提示表明在本地启动 Tomcat v9.0 服务器时遇到了问题&#xff0c;原因是所需…

python爬虫(二)爬取国家博物馆的信息

import requests from bs4 import BeautifulSoup# 起始网址 url https://www.chnmuseum.cn/zx/xingnew/index_1.shtml # 用于存储所有数据 all_data [] page 1 global_index 1 # 定义全局序号变量并初始化为1 while True:html_url requests.get(url).textif requests.get…

Excel SUMIFS

SUMIFS 是 Excel 中一个非常强大的函数&#xff0c;用于根据多个条件对数值区域进行求和。它是 SUMIF 函数的升级版&#xff0c;能够处理多个条件&#xff0c;使得数据分析变得更加精确和方便。 SUMIFS 函数的语法 excel 复制代码 SUMIFS(sum_range, criteria_range1, criteri…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品&#xff0c;是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要&#xff0c;专门加工配置而成的配方食品&#xff0c;包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

2024-在Gentoo claculate Linux中设置中文支持

在Gentoo calculate Linux中设置中文支持&#xff1a; 编辑/etc/locale.gen文件&#xff1a; 打开/etc/locale.gen文件&#xff0c;在文件中添加以下两行来启用中文locale&#xff1a; zh_CN.UTF-8 UTF-8 # 如果需要GBK编码&#xff0c;也可以添加 zh_CN.GBK GBK保存并关闭文件…

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-串行调用多个tools(三)

一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将介绍如何…

TofuAI处理BT1120时序视频要求

时序要求 BT.1120视频用于1920x108030Hz数字视频输入。具体时序必须严格按照说明。BT.1120输入电平为1.8V。 BT1120数字视频采用YCbCr彩色格式输出&#xff0c;串行数据位宽为16bit&#xff0c;亮度在 高8bit&#xff0c;色度在低8bit&#xff0c;亮度和色度在同一个时钟周期输…

线程的生命周期、线程池及线程安全预防

在多线程编程中&#xff0c;理解线程的生命周期、线程池的概念以及如何预防线程安全问题至关重要。本文将深入探讨这些主题&#xff0c;帮助读者更好地掌握多线程编程的关键要点。 一、线程的生命周期 线程的生命周期可以分为以下几个阶段&#xff1a; 新建状态&#xff08;Ne…

ASP.NET MVC宠物商城系统

该系统采用B/S架构&#xff0c;使用C#编程语言进行开发&#xff0c;以ASP.NET MVC框架为基础&#xff0c;以Visual Studio 2019为开发工具&#xff0c;数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…

嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机

引言&#xff1a;主要针对于嵌入式全栈内容的知识点汇总并对于linux等相关驱动知识点进行串联&#xff0c;用大家参考学习&#xff0c;并用到了嘉立创提供的泰山派RK3566作为学习的主控。 实物演示如下所示&#xff1a; 目录 一、硬件设计 1.转接电路 2.背光电路 3.音频接…

玩转ChatGPT:文献阅读 v2.0

一、写在前面 好久不更新咯。 因为最近ChatGPT更新了不少功能&#xff08;水一篇刷存在感&#xff09;&#xff1a; 上线ChatGPT-4o模型&#xff0c;说推理能力还不错&#xff1b;上线联网功能&#xff0c;类似Kimi那种。 所以呢&#xff0c;用它来读文献就挺舒服的了。例如…