完美解决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.xdnf.cn/news/35528.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

在做题中学习(77):快排

解法:快排 思路: 1.快排排一趟,递归分出来的左区间和右区间(一趟的思想,看我的前一个文章:颜色分类题解) 2.递归:想清楚 函数头 和 返回条件怎么写 3.优化:等概率的取…

AUTO TECH China 2025 华南展:探索汽车技术的新纪元

AUTO TECH China 2025 华南展:探索汽车技术的新纪元 随着科技的日新月异,汽车行业正经历着前所未有的变革。从电动化、智能化到网联化,每一项新技术的应用都在重塑我们对汽车的认知。为了展示这些令人激动的创新成果,我们荣幸地宣…

C# RSA加密和解密,RSA生成私钥和公钥

C# RSA加密和解密,RSA生成私钥和公钥(使用XML格式秘钥) 目录 前言生成xml格式的公钥和私钥 PrivateKeyPublicKey测试加密、解密 方案1:RSA公钥加密,RSA私钥解密方案2:RSA私钥加密,RSA私钥解密…

指标加权评价方法

文章目录 层次分析法(Analytic Hierarchy Process, AHP)熵权法原理计算方法 Technique for Order Preference by Similarity to Ideal Solution(TOPSIS, 优劣解距离法)原理计算方法 层次分析法(Analytic Hierarchy Process, AHP) …

React第十七章(useRef)

useRef 当你在React中需要处理DOM元素或需要在组件渲染之间保持持久性数据时,便可以使用useRef。 import { useRef } from react; const refValue useRef(initialValue) refValue.current // 访问ref的值 类似于vue的ref,Vue的ref是.value,其次就是vu…

SpringBoot 赋能家乡特色推荐系统:高效架构与前沿技术集成

1 绪 论 1.1课题背景与意义 在Internet高速发展的今天,计算机的应用几乎完全覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管…

国际知名会计事务所安永造访图为科技,探索财务管理全球化新路径

今日,全球领先的安永会计师事务所(以下简称“安永”)合伙人造访了图为信息科技(深圳)有限公司(以下简称“图为科技”)。 安永就财务管理工作的全球化战略提供专业指导意见,并为双方…

Java 实现手机号码归属地查询

1.pom坐标 <dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>geocoder</artifactId><version>2.205</version></dependency> 2.代码 package test;import com.alibaba.excel.util.StringUtils; im…

SIP系列七:ICE框架(P2P通话)

我的音视频/流媒体开源项目(github) SIP系列目录 目录 一、NAT 1、NAT介绍 2、NAT类型 2.1、 完全圆锥型NAT 2.2、受限圆锥型NAT 2.3、端口受限圆锥型NAT 2.4、对称NAT 3、NAT打洞 3.1、不同一NAT下 3.2、同一NAT下 二、ICE 三、ICE中的SDP 至此&#x…

python桌面工具

用处 使用该工具可以将excel内容转成SQL语句&#xff0c;可以使用到一些SQL的报表平台可以将json文件转成xlsx格式文件 前期准备 安装库 pip install pandas -i https://mirrors.aliyun.com/pypi/simplepip install wxpython -i https://mirrors.aliyun.com/pypi/simplepip i…

【Golang】Go语言编程思想(一):接口

接口 接口的概念 现在我们要实现一个函数&#xff0c;用于对给定的 url 进行解析&#xff0c;具体的代码实现如下&#xff1a; package mainimport ("fmt""io""net/http" )func retrieve(url string) string {resp, err : http.Get(url)if er…

SAP SD 如何设置交货单数量可修改为0

在日常运维中&#xff0c;销售订单可以被reject&#xff0c;但是交货单只能被物理删除 但是粗暴的物理删除&#xff0c;又会使得单据不连续&#xff0c;出现问题不好追溯 所以我们就可以通过将废弃的交货单的数量置为0 配置如下&#xff1a; C表示&#xff0c;创建的时候不可…

记一次由docker容器使得服务器cpu占满密码和密钥无法访问bug

Bug场景&#xff1a; 前几天在服务器上部署了一个免费影视网站&#xff0c;这个应用需要四个容器&#xff0c;同时之前的建站软件workpress也是使用docker部署的&#xff0c;也使用了三个容器。在使用workpress之前&#xff0c;我将影视软件的容器全部停止。 再使用workpress…

Matlab R2024b 中文版 下载及安装教程

点击下方链接下载安装包 Matlab R2024b 中文版安装包点击下载https://mp.weixin.qq.com/s/Kq2j1dQLdULOVV9vrA6pkA 安装教程 1.通过上方链接下载软件&#xff0c;鼠标右键【MATLAB R2024b(64bit)】压缩包&#xff0c;选择解压到MATLAB R2024b(64bit)。 2.双击进入解压后的文…

2024年12月6日Github流行趋势

项目名称&#xff1a;lobe-chat 项目维护者&#xff1a;arvinxx, semantic-release-bot, canisminor1990, lobehubbot, renovate项目介绍&#xff1a;一个开源的现代化设计的人工智能聊天框架。支持多AI供应商&#xff08;OpenAI / Claude 3 / Gemini / Ollama / Qwen / DeepSe…

韩企研学团造访图为科技:共探人工智能创新前沿

今日&#xff0c;一支由韩国知名企业研学专家组成的代表团莅临图为科技深圳总部&#xff0c;展开了一场深度技术交流与研讨活动。 此次访问旨在通过实地探访中国领先的科技企业&#xff0c;促进中韩两国在科技创新领域的深入合作与交流。 韩国游学团合影 图为科技作为一家在人…

Vulnhub---kioptirx4 udf手工提权

个人博客 WuTongSec 打点 nmap -sP 192.168.128.0/24 找机器 nmap -P- 192.168.128.135 端口快扫 nmap -min-rate 10000 -sV -sC -O 192.168.128.135 脚本并没有扫出 什么洞 dirsearch -u http://192.168.128.135 目录扫描 三个200 那就先上web看看 web是应该登录框 在pas…

基于RISC-V的HSM方案

安全之安全(security)博客目录导读 本篇博客&#xff0c;我们聚焦RISC-V 2024中国峰会上RISC-V的一个HSM&#xff08;Hardware Security Module&#xff09;实现方案&#xff0c;来自芯来科技王松老师。 关于RISC-V TEE(可信执行环境)的相关方案&#xff0c;如感兴趣可参考RIS…

【C++探索学习】第十九弹——进程替换:深入解析操作系统中的进程替换机制

Linux学习笔记&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在Linux操作系统中&#xff0c;进程替换&#xff08;Process Replacement&#xff09;是一个重要的概念&#xff0c;它允许程序通过系统调…

[软件工程]八.软件演化

8.1什么是软件演化 由于种种不可避免的原因&#xff0c;系统开发完成后的软件需要进行修改来适应变更的需求&#xff0c;我们对软件的修改就叫软件演化。 8.2为什么软件会演化 由于业务的变更或者为了满足用户期待的改变&#xff0c;使得对已有的系统的新需求浮现出来。由于…