完美解决Qt Qml窗口全屏软键盘遮挡不显示

1、前提

说明:我使用的是第三方软键盘 QVirtualKeyboard

QVirtualKeyboard: Qt5虚拟键盘支持中英文,仿qt官方的virtualkeyboard模块,但使用QWidget实现。 - Gitee.com

由于参考了几篇文章尝试但没有效果,链接如下:

文章一:可能对qml程序无效

Qt程序全屏后调用软键盘时键盘无法输入的解决方法_qt spinbox 不能用键盘输入-CSDN博客

文章二:反正就是没效果

Qt编写的qml程序全屏时,挡住系统虚拟键盘的解决办法_qml 软键盘 遮挡-CSDN博客

效果图展示:

完全看不出来应用没有完全全屏不是吗?

2、解决思路

测试发现只要窗口全屏并且无边框、那么软键盘就会被遮挡。

甚至不设置全屏,只要宽高和屏幕尺寸一致就会遮挡软键盘。

原理不太懂,也不愿意花太多时间去研究软键盘代码实现。

经过我测试发现,窗口尺寸比屏幕尺寸少1像素,仍然可以做到显示完全全屏,并且可以弹出软键盘。

那么直接隐藏窗口标题栏,和桌面的任务栏,并且将窗口尺寸小1像素,就可以做到应用全屏,并且不影响软键盘使用了。

3、操作方法

1、qml代码在窗口中设置无边框,隐藏标题栏,设置屏幕高度比屏幕小1像素

import QtQuick 2.7
import QtQuick.Window 2.8Window {id: rootvisible: truewidth: 1280 //实际宽度1280height: 799 //实际高度800flags:Qt.FramelessWindowHint    //设置无标题栏//你的代码
}

2、设置任务栏自动隐藏

参考文章:RK3399 Ubuntu修改任务栏为自动隐藏和修改桌面背景_ubuntu 命令行设置任务栏隐藏-CSDN博客

3、设置任务栏宽度为0

任务栏宽度太宽,指针滑到屏幕底部很容易导致任务栏取消隐藏,宽度设置0,使用触摸屏几乎是无法唤起任务栏,虽然使用鼠标可以,但是正常商用环境主机是不接鼠标的不是吗?

补充:由于QVirtualKeyboard是基于QWidget的,在需要QApplication程序才能触发,所以需要把main函数中的QGuiApplication app() 改成QApplication app()

4、方案补充

好吧,高度差1像素还是有影响的,在有些情况下会出现屏幕边缘一条亮线的情况。

更好一些的方案窗口全屏,再点击输入框之后改变窗口高度,另外调整QVirtualKeyboard的软键盘宽度和屏幕宽度一致,这样在需要输入的情况调整窗口高度让软键盘显示出来,输入完成窗口全屏显示就行了。

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

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

相关文章

吉林大学23级数据结构上机实验(第7周)

A 去火车站 寒假到了,小明准备坐火车回老家,现在他从学校出发去火车站,CC市去火车站有两种方式:轻轨和公交车。小明为了省钱,准备主要以乘坐公交为主。CC市还有一项优惠政策,持学生证可以免费乘坐一站轻轨&…

MATLAB 最小二乘点云拟合球 (89)

MATLAB 最小二乘点云拟合球 (89) 一、算法介绍二、算法实现1.代码2.结果这是缘,亦是最美的相见 一、算法介绍 球面拟合算法是一种通过数学方法将一组三维点(通常在三维空间中分布)拟合到一个理想的球形表面上。这个过程通常涉及使用最小二乘法来最小化实际数据点与拟合的…

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能,助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具,它整合了多账号管理、视频智能分发、数据可视化等多种功能,为企业在短视频领域的发展提供了强大…

若依 ruoyi VUE el-select 直接获取 选择option 的 label和value

1、最新在研究若依这个项目,我使用的是前后端分离的方案,RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便,这个项目运行起来很方便,但是需要自定义的…

【0x01】HCI_Inquiry_Complete事件详解

目录 一、事件概述 二、事件格式及参数 2.1. HCI_Inquiry_Complete事件格式 2.2. 参数 三、HCI_Inquiry_Complete事件触发机制 3.1. 基于查询命令完成的触发 3.2. 受查询环境和设备状态影响的触发 3.3. 与蓝牙协议栈内部逻辑相关的触发 四、事件处理流程 4.1. 事件接…

【Linux系统编程】——Linux操作系统的魔法桥梁:从命令行到内核的奇遇记

文章目录 Linux操作系统的概念(是什么?)设计操作系统的目的(为什么?)核心功能(怎么办?)如何理解“管理”——软硬件的管理硬件管理软件管理 系统调⽤和库函数概念系统调用(System Call)库函数&a…

VBA基础2

VBA基础2 sub过程语法对单元格进行赋值操作连续赋值不连续赋值 cells (行,列)行引用rows列引用 (columns)offset位移属性End属性(指定返回) 使用VBA编辑器需要用AltF11打开 或者VB编辑器打开 可…

支持win7系统的onnxruntime

在win7 X86系统上,使用了onnxruntime.dll库做AI识别,但是在win7上运行报0xc0000005的错误 经查,ONNX Runtime从v1.15.0版本开始不再支持Windows 7及其之前的操作系统,即便尝试重新编译源代码亦无法在这些老系统上运行,…

【服务器监控】grafana+Prometheus+node exporter详细部署文档

我们在进行测试时,不可能一直手动看着服务器的性能消耗,这时候就需要有个工具替我们监控服务器的性能消耗。这里记录下grafanaPrometheusnodeExporter的组合用于监控服务器。 简单介绍: grafana:看板工具,所有采集的…

【密码学】分组密码的工作模式

1.电码本模式(ECB) 优点: 每个数据块独立加密,可并行加密,实现简单。 缺点: 相同明文会产生相同密文,不具备数据完整保护性。 适用于短消息的加密传输 (如一个加密密钥)。 工作流程:用相同的密钥分别对…

PR时间轴

简介 时间轴记录整个项目所发生的一切,它包括视频轨道、音频轨道、字幕轨道,可以队单独的任意轨道进行编辑。 时间轴上还可以使用编辑点对素材进行简单编辑,也可以锁定轨道保证素材不会被其他操作改变。 播放指示器(指针&#x…

【RBF SBN READ】hadoop社区基于RBF的SBN READ请求流转

读写分离功能的背景及架构 当前联邦生产集群的各个子集群只有Active NameNode在工作,当读写任务变得繁忙的时候,只有一个Active负责处理的话,此时集群的响应和处理能力业务侧感知会明显下降,为此,我们将引入Observer架构,实现读写功能的分离,使得Active只负责写请求,而…

记事本建java及java命名规范

1.桌面开发:c# 2. 记事本建java: 以class的名称(类名)为名,名称.java 编译jdk:javac 名称.java 调动运行jre : java 名称 查看名称.java里面的内容:cat 名称.java java 的命名规范 大驼峰(每个单词首…

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用,如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而,这些方法存在一些局限性,例如需…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ&#xff…

如何修复和防止 500 内部服务器错误的发生

当遭遇 500 内部错误时,意味着服务器出现了意外状况,以至于无法对请求予以回应。这种错误往往源于服务器端的各类问题,像是服务器配置出现偏差、脚本存在漏洞或者服务器瞬间负荷过重等。在不少情形下,服务器管理员能够化解此难题&…

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题:左右子树相反转。遍历手法:后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…

【项目】基于YOLOv10的目标检测项目

【项目】基于YOLOv10的目标检测项目 (一)模型性能(二)安装与使用(1)环境安装(2)快速使用(3)模型评估Validation(4)模型训练Training&a…

与火山引擎合作深化,观测云携一站式监控解决方案登陆万有商城

近日,观测云正式宣布入驻火山引擎的万有商城。作为一款全栈式数据观测与分析平台,观测云的加入不仅丰富了火山引擎生态,也为广大企业用户带来了更便捷的数字化工具,助力企业快速实现业务监控与优化。 从全球覆盖到本地深耕&#x…

计算机网络原理之HTTP与HTTPS

一、前言 为了理解HTTP,我们有必要事先了解一下TCP/IP协议簇。 通常我们使用的网络(包括互联网)是在TCP/IP协议簇的基础上运作的。而HTTP属于它内部的一个子集。 计算机与网络设备要相互通信,双方必须基于相同的方法。比如&#…