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

Qt 焦点系统关键点总结

1.1 焦点窗口

指的是当前时刻拥有键盘输入的窗口。

Qt提供了如下接口,用于设置窗口是否是”可获取焦点“窗口:

void QWidget::setFocusPolicy(Qt::FocusPolicy policy);
Qt::FocusPolicy      
Qt::TabFocus      与焦点链相关,详解见下一小节
Qt::ClickFocus      
Qt::StrongFocus
Qt::WheelFocus    
Qt::NoFocus      不可获取焦点

setFocusPolicy()的参数值可以是上述5个值中的任意一种,当参数值为前4个的时候,当前窗口可以获取焦点,当参数值为Qt::Nofocus的时候,当前窗口不可获取焦点。

1.2 焦点链

Qt除了把窗口对象组织成树状结构外,还把这些窗口组织成了一个双向链表结构,这个链表叫做焦点链。焦点链上每个节点代表一个窗口,默认情况下,窗口在焦点链上的先后位置,与用户把窗口添加到窗口树的先后顺序有关,越早添加到窗口树上的窗口,其在焦点链中的位置越靠前。

通过按Tab或者Shift+Tab,可以实现焦点在各个窗口之间循环移动。焦点移动顺序与焦点链相关,它的移动规律如下:

1)点击Tab键,焦点链指针向后移动,直至碰到第一个FocusPolicy为TabFocus的窗口,并设置该窗口为焦点窗口;

2)点击Shift+Tab,焦点链指针向前移动,直至碰到第一个FocusPolicy为TabFocus的窗口,并设置该窗口为焦点窗口;

Qt提供了下列结构,用于获取焦点链信息:

//返回此部件焦点链中的下一个部件
QWidget* QWidget::nextInFocusChain() const;
//返回此部件焦点链中的前一个部件
QWidget* QWidget::previousInFocusChain() const;

此外,我们还可以调整焦点链中节点的先后顺序

// 将焦点顺序中的部件 second 放置在部件 first 之后
static void QWidget::setTabOrder(QWidget* first, QWidget* second);

比如,若默认的焦点链顺序为 a-b-c-d,则:

setTabOrder(d,c); //改变后焦点链的顺序为 a-b-d-c
setTabOrder(b,a); //改变后焦点链的顺序为 b-a-d-c

1.3 焦点事件

与焦点事件处理相关的函数如下:

void QWidget::focusInEvent(QFocusEvent *event);
void QWidget::focusOutEvent(QFocusEvent *event);

当焦点从一个部件移动到另一个部件时,会触发QFocusEvent事件,这个事件会被发送给原焦点窗口和当前焦点窗口,原焦点窗口执行focusOutEvent(),新焦点窗口执行focusInEvent()

相关文章:

Qt 焦点系统关键点总结

1.1 焦点窗口 指的是当前时刻拥有键盘输入的窗口。 Qt提供了如下接口,用于设置窗口是否是”可获取焦点“窗口: void QWidget::setFocusPolicy(Qt::FocusPolicy policy); Qt::FocusPolicy Qt::TabFocus 与焦点链相关,详解见下一…...

SpringBoot+Maven项目的配置构建

文章目录 1、application.properties2、pom.xml 1、application.properties 也可使用yml yaml #静态资源 spring.mvc.static-path-pattern/images/** #上传文件大小设置 spring.http.multipart.max-file-size10MB spring.http.multipart.max-request-size10MBspring.mvc.path…...

c#调用c++dll方法

添加dll文件到debug目录,c#生成的exe的相同目录 就可以直接使用了,放在构造函数里面测试...

ACM算法学习路线、清单

入门 模拟、暴力、贪心、高精度、排序 图论 搜索 BFS、DFS、IDDFS、IDA*、A*、双向BFS、记忆化 最短路 SPFA、bellman-fort(队列优化)、Dijkstra(堆优化)、Johnson、Floyd、差分约束、第k短路 树 树的重心和直径、dfs序、树链刨分与动态树、LCA、Prufer编码及Cayley定理…...

sqoop的安装配置

1. 上传并解压安装包 tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ../server/ 重命名:mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop 2. 配置环境变量 sudo vim /etc/profile # 配置sqoop的环境变量 export SQOOP_HOME/export/server/sqoop export PATH$PATH…...

代码随想录算法训练营第六十四天 | 图论理论基础、深搜理论基础、广搜理论基础、98. 所有可达路径

图论理论基础 我写在了个人语雀笔记中 https://www.yuque.com/yuqueyonghu8mml9e/bmbl71/ex473q4y0ebs0l3r?singleDoc# 深搜理论基础 https://www.yuque.com/yuqueyonghu8mml9e/bmbl71/zamfikz08c2haptn?singleDoc# 98. 所有可达路径 题目链接:98. 所有可达…...

【教师资格证考试综合素质——法律专项】教师法笔记以及练习题

《中华人民共和国教师法》 一.首次颁布:第一部《中华人民共和国教师法》于1993年10月31日由第八届全国人民代表大会常务委员会第四次会议通过,1994年1月1日起执行。 二.历次修改:2009年8月27日第十一届全国人民代表…...

图卷积网络(Graph Convolutional Network, GCN)

图卷积网络(Graph Convolutional Network, GCN)是一种用于处理图结构数据的深度学习模型。GCN编码器的核心思想是通过邻接节点的信息聚合来更新节点表示。 图的表示 一个图 G通常表示为 G(V,E),其中: V 是节点集合,…...

【diffusers 极速入门(一)】pipeline 实际调用的是什么? __call__ 方法!

在使用 diffusers 库进行图像生成时,你可能会发现管道(pipeline)对象可以像函数一样被调用。这背后的魔法是什么呢?答案是:__call__ 方法!本文将通过简单的案例代码,带你快速了解 diffusers 管道…...

【DPDK学习路径】二、DPDK简介

DPDK(Data Plane Development Kit)是一个框架,用于快速报文处理。 在linux内核提供的报文处理模型中,接收报文的处理路径为:首先由网卡硬件接收,产生硬中断,触发网卡驱动程序注册的中断函数处理,之后产生软…...

python基础 002 - 2 常用数据类型

python的常用数据类型 int , 整型 1,2,3float ,小数,浮点类型1.2bool , boolean 布尔,真假。判断命题。True Flasestr ,字符串 list , 列表 a []tuple, 元组 a ()dict , dictionary, 字典 a {}set , 集合 a {} 1 查看数据类型 typ…...

爆赞!GitHub首本Python开发实战背记手册,标星果然百万名不虚传

Python (发音:[ paiθ(ə) n; (US) paiθɔn ] n. 蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富…...

Spring源码-xxxAware实现类和BeanPostProcessor接口调用过程

xxxAware实现类作用 以ApplicationContextAware接口为例 ApplicationContextAware的作用是可以方便获取Spring容器ApplicationContext,从而可以获取容器内的Bean package org.springframework.context;import org.springframework.beans.BeansException; import or…...

Uni-app x

uni-app x,是下一代 uni-app,是一个跨平台应用开发引擎。 uni-app x 是一个庞大的工程,它包括uts语言、uvue渲染引擎、uni的组件和API、以及扩展机制。 uts是一门类ts的、跨平台的、新语言。uts在iOS端编译为swift、在Android端编译为kotli…...

Python 基础:文件

目录 一、从文件中读取数据1.1 读取整个文件1.2 逐行读取 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程:从入…...

WebForms 母版页

WebForms 母版页 介绍 WebForms 母版页是 ASP.NET WebForms 应用程序中的一项功能,它允许开发人员创建一个包含页面布局和控件的模板,其他页面可以继承这个模板。使用母版页可以确保整个网站的一致性和减少重复代码。 如何创建母版页 在 Visual Stud…...

Java应用打包成Docker镜像

# 使用官方的OpenJDK17镜像作为基础镜像 FROM openjdk:17 # 设置工作目录 WORKDIR /app # 复制本地的Java应用程序文件到镜像中的指定目录 COPY target/bear-module-system-0.0.1-SNAPSHOT.jar /app/bear-module-system-0.0.1-SNAPSHOT.jar # 暴露API端口 EXPOSE 8888 …...

什么是自动驾驶中的CopyCat?

"CopyCat"这个词通常有两个含义: 字面意思:它可以指一个模仿别人的人,就像猫一样模仿其他猫的行为。在日常用语中,如果有人说某人是个"copycat",他们可能是在说这个人缺乏原创性,总是模仿别人的想法、风格或者行为。 心理学和犯罪学中的含义:在心…...

为什么没人详细说过智能猫砂盆?最受欢迎的好用智能猫砂盆解析!

不知道大家有没有发现,在快节奏的现代生活中,忙碌于上班的我们会发现自己越来越难以抽出足够的时间去细心照料自己的猫咪。每次下班回家,看到猫砂盆里堆积的粪便和尿液,自己都感到一阵头痛。这时,我开始考虑起智能猫砂…...

AI视频智能监管赋能城市管理:打造安全有序的城市环境

一、方案背景 随着城市化进程的加速和科技的飞速发展,街道治安问题日益凸显,治安监控成为维护社会稳定和保障人民安全的重要手段。当前,许多城市已经建立了较为完善的治安监控体系,但仍存在一些问题。例如,监控设备分…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...