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()调用时清除部件所有焦点
最近在做项目时,遇到一个问题:在统信UOS系统编写的QT程序,其中进入某些页面时,或者显示模态窗时,按钮都会有一个焦点框,这个是不允许的,于是乎,开始了清理焦点的旅途。 一、清理QDia…...
uni-app @click.stop @click.stop.native均不生效
原因就是用了nvue导致的 vue等其他环境都可以 解决:e.stopPropagation() click"goExecute($event)" goExecute(e) {e.stopPropagation()}, uniApp官方真的是一坨大翔,不仅社区不维护,文档也写的跟粑粑一样,自创的nv…...

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

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

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

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

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

【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检查最后一行的元素,高度就已经改变了;...

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

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

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

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

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

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

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

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

传奇架设好后创建不了行会,开区时点创建行会没反应的解决办法
传奇架设好后,测试了版本,发现行会创建不了,按道理说一般的版本在创建行会这里不会出错的,因为这是引擎自带的功能。 建立不了行会虽然说问题不大,但也不小,会严重影响玩家的游戏体验,玩游戏为的…...

【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法
目录 参考书,学习书 0 统计学知识大致脉络 1 个体---抽样---整体 1.1 关于个体---抽样---整体,这个三段式关系 1.2 要明白,自然界的整体/母体是不可能被全部认识的 1.2.1 不要较真,如果是人为定义的一个整体,是可…...

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

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...