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

QT QDialog::exec()调用时清除部件所有焦点

最近在做项目时,遇到一个问题:在统信UOS系统编写的QT程序,其中进入某些页面时,或者显示模态窗时,按钮都会有一个焦点框,这个是不允许的,于是乎,开始了清理焦点的旅途。

一、清理QDialog::exec()调用时的所有焦点

可以看到,“确定”按钮确实有个黑色的方框,这个就是焦点框,即当前窗口的焦点落到了“确定”按钮上。(注意,这个是自定义类继承自QDialog,自己实现的模态)

如果需要解决此问题,可以使用 事件过滤器 ,当监听到窗口部件有焦点时,取消之。

注意,此方法必须自定义类继承自QDialog,否则无法实现。

第一步:继承自QDialog

class MyDialog : public QDialog {}

第二步:重新实现 事件过滤器

bool eventFilter(QObject *obj, QEvent *event) override {// 省略一万行代码...
}

第三步:为部件安装事件过滤器

widget->installEventFilter(this);

代码实现:

#include <QDialog>
#include <QEvent>
#include <QWidget>
#include <QApplication>class MyDialog : public QDialog {Q_OBJECTpublic:MyDialog(QWidget *parent = nullptr) : QDialog(parent) {/// 为对话框中的所有子部件安装事件过滤器foreach (QWidget *widget, this->findChildren<QWidget*>()) {widget->installEventFilter(this);}}protected:// 重载事件过滤器bool eventFilter(QObject *obj, QEvent *event) override {/// 当部件获得焦点时,清除焦点if (event->type() == QEvent::FocusIn) {QWidget *widget = qobject_cast<QWidget*>(obj);if (widget) {widget->clearFocus();  // 清除焦点}}/// 继续处理其他事件return QDialog::eventFilter(obj, event);}
};// 主函数
int main(int argc, char *argv[]) {QApplication app(argc, argv);MyDialog dialog;dialog.exec();  // 执行对话框return app.exec();
}

到此,问题已解决!

二、清除所有部件及子部件的焦点

问题也是与第一点一致,按钮上有焦点时会显示一个黑色的焦点框。

解决代码:

// 清除部件即所有子部件的焦点
void clearFocusForAllChildren(QWidget *widget)
{if (nullptr == widget) {return;}// 获得当前部件的所有子部件QList<QWidget*> children = widget->findChildren<QWidget*>();for (QWidget* child : children) {if (child) {child->clearFocus();}clearFocusForAllChildren(child); // 递归调用}
}

完!

相关文章:

QT QDialog::exec()调用时清除部件所有焦点

最近在做项目时&#xff0c;遇到一个问题&#xff1a;在统信UOS系统编写的QT程序&#xff0c;其中进入某些页面时&#xff0c;或者显示模态窗时&#xff0c;按钮都会有一个焦点框&#xff0c;这个是不允许的&#xff0c;于是乎&#xff0c;开始了清理焦点的旅途。 一、清理QDia…...

uni-app @click.stop @click.stop.native均不生效

原因就是用了nvue导致的 vue等其他环境都可以 解决&#xff1a;e.stopPropagation() click"goExecute($event)" goExecute(e) {e.stopPropagation()}, uniApp官方真的是一坨大翔&#xff0c;不仅社区不维护&#xff0c;文档也写的跟粑粑一样&#xff0c;自创的nv…...

数据可视化工具深入学习:Seaborn 与 Plotly 的详细教程

数据可视化工具深入学习&#xff1a;Seaborn 与 Plotly 的详细教程 数据可视化是数据分析中不可或缺的一部分&#xff0c;能够有效地帮助我们理解数据、发现模式和传达信息。在众多可视化工具中&#xff0c;Seaborn 和 Plotly 是两个非常流行且强大的库。本文将深入探讨这两个…...

camera和lidar外参标定

雷达和相机的外参标定&#xff08;外部参数标定&#xff09;指的是确定两者之间的旋转和平移关系&#xff0c;使得它们的坐标系可以对齐。 文章目录 无目标标定livox_camera_calibdirect_visual_lidar_calibration 有目标标定velo2cam_calibration 无目标标定 livox_camera_ca…...

Redis慢查询分析优化

文章目录 一、定义二、慢查询参数配置三、慢查询日志四、排查步骤五、Redis变慢原因 一、定义 在Redis执行时耗时超过某个阈值的命令&#xff0c;称为慢查询。 慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间&…...

ETL处理全流程

ETL代表提取Extraction、转换Transform、加载Load——这个过程涉及从各种来源提取数据&#xff0c;将其转换为一致的格式&#xff0c;并将其加载到目标数据库或数据仓库中。这是数据集成和分析的一个重要步骤&#xff0c;因为它确保数据准确、可靠&#xff0c;并准备好进一步处…...

美畅物联丨掌握Wireshark:GB28181协议报文分析实战指南

Wireshark&#xff0c;一款在网络安全与协议分析领域享有盛誉的网络嗅探器&#xff0c;凭借其强大的功能集、直观的图形用户界面以及广泛的跨平台兼容性&#xff0c;已成为众多开发者不可或缺的得力助手。其开源特性吸引了大量开发者的积极参与&#xff0c;不断推动其功能的完善…...

【python】OpenCV—WaterShed Algorithm

文章目录 1、功能描述2、代码实现3、完整代码4、效果展示5、涉及到的库函数5.1、cv2.pyrMeanShiftFiltering5.2、cv2.morphologyEx5.3、cv2.distanceTransform5.4、cv2.normalize5.5、cv2.watershed 6、更多例子7、参考 1、功能描述 基于分水岭算法对图片进行分割 分水岭分割…...

CSS flex布局- 最后一个元素占满剩余可用高度转载

效果图 技术要点 height父元素必须有一个设定的高度flex-grow: 1 flex 盒子模型内的该元素将会占据父容器中剩余的空间F12检查最后一行的元素&#xff0c;高度就已经改变了&#xff1b;...

Camp4-L1:XTuner 微调个人小助手认知

书生浦语大模型实战营第四期-XTuner 微调个人小助手认知 教程链接&#xff1a;https://github.com/InternLM/Tutorial/blob/camp4/docs/L1/XTuner/README.md任务链接&#xff1a;https://github.com/InternLM/Tutorial/blob/camp4/docs/L1/XTuner/task.md提交链接&#xff1a;…...

Qt:语言家视图

1.一不小心将qt语言家点成这样 2.点击查看->视图 3.效果...

【Paper Note】利用Boundary-aware Attention边界感知注意力机制增强部分伪造音频定位

利用Boundary-aware Attention边界感知注意力机制增强部分伪造音频定位 摘要核心模块什么是边界&#xff1f;什么是边界特征&#xff1f; 写作背景解决的问题 方法1. 特征提取使用预训练好的自监督学习模型进行前端特征提取Attentive poolingQ&#xff1a;为什么使用Attentive …...

海外共享奶牛牧场投资源码-理财金融源码-基金源码-共享经济源码

新版海外共享奶牛牧场投资源码/理财金融源码/基金源码/共享经济源码...

iOS静态库(.a)及资源文件的生成与使用详解(OC版本)

引言 iOS静态库&#xff08;.a&#xff09;及资源文件的生成与使用详解&#xff08;Swift版本&#xff09;_xcode 合并 .a文件-CSDN博客 在前面的博客中我们已经介绍了关于iOS静态库的生成步骤以及关于资源文件的处理&#xff0c;在本篇博客中我们将会以Objective-C为基础语言…...

Python自动化:关键词密度分析与搜索引擎优化

在数字营销领域&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是提升网站可见性和吸引有机流量的关键。关键词密度分析作为SEO的一个重要组成部分&#xff0c;可以帮助我们理解特定关键词在网页内容中的分布情况&#xff0c;从而优化网页内容以提高搜索引擎排名。本文将…...

苏州金龙新V系客车创新引领旅游出行未来

10月25日&#xff0c;为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办&#xff0c;全面展示了中国旅游出行行业最新发展动态和发展成就&#xff0c;为旅游行业带来全新发展动力。 在大会期间&#xff0c;备受瞩目的展车…...

linux:DNS服务

DNS简介&#xff1a; DNS系统使用的是网络的查询&#xff0c;那么自然需要有监听的port。DNS使用的是53端口&#xff0c; 在/etc/services&#xff08;搜索domain&#xff09;这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查 询的&#xff0c;但是没有查询到完…...

传奇架设好后创建不了行会,开区时点创建行会没反应的解决办法

传奇架设好后&#xff0c;测试了版本&#xff0c;发现行会创建不了&#xff0c;按道理说一般的版本在创建行会这里不会出错的&#xff0c;因为这是引擎自带的功能。 建立不了行会虽然说问题不大&#xff0c;但也不小&#xff0c;会严重影响玩家的游戏体验&#xff0c;玩游戏为的…...

【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法

目录 参考书&#xff0c;学习书 0 统计学知识大致脉络 1 个体---抽样---整体 1.1 关于个体---抽样---整体&#xff0c;这个三段式关系 1.2 要明白&#xff0c;自然界的整体/母体是不可能被全部认识的 1.2.1 不要较真&#xff0c;如果是人为定义的一个整体&#xff0c;是可…...

安全研究 | 不同编程语言中 IP 地址分类的不一致性

作为一名安全研究人员&#xff0c;我分析了不同编程语言中 IP 地址分类 的行为。最近&#xff0c;我注意到一些有趣的不一致性&#xff0c;特别是在循环地址和私有 IP 地址的处理上。在这篇文章中&#xff0c;我将分享我对此问题的观察和见解。 设置 我检查了多种编程语言&am…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...