qml虚拟键盘添加

 在QGuiApplication之前添加QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;const QUrl url(QStringLiteral("qrc:/main.qml"));QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);return app.exec();
}
在qml中实现
    Rectangle{id: inputerx:250y: 350width: 100height: 20color: "yellow"border.color:"gray"TextInput{anchors.fill: parentanchors.margins: 4focus: truetext: "please in...."}function move( height ) {inputer.y += height;}}InputPanel {id: inputPanelz: 99x: 0y: window.heightwidth: window.widthstates: State {name: "visible"when: inputPanel.activePropertyChanges {target: inputPanely: window.height - inputPanel.height}}transitions: Transition {from: ""to: "visible"reversible: trueParallelAnimation {NumberAnimation {properties: "y"duration: 250easing.type: Easing.InOutQuad}}}
展现的效果图如图:

但是,会遮盖部分输入框:

**qml虚拟键盘遮挡输入框解决方法
**
在InputPanel中添加onActiveChanged{},并在被遮挡的输入框添加function()函数,实现整体的上移操作(这里用的函数是move)。
.qml

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.VirtualKeyboard 2.4
import QtQuick.Layouts 1.11Window {id: windowvisible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle{id: inputx:250y: 150width: 100height: 20color: "white"border.color:"gray"TextInput{anchors.fill: parentanchors.margins: 4focus: truetext: "please in ....."}function move( qq ) {input.y += qq;}}Rectangle{id: inputerx:250y: 350width: 100height: 20color: "yellow"border.color:"gray"TextInput{anchors.fill: parentanchors.margins: 4focus: truetext: "please input ....."}function move( height ) {inputer.y += height;}}InputPanel {id: inputPanelz: 99x: 0y: window.heightwidth: window.widthstates: State {name: "visible"when: inputPanel.activePropertyChanges {target: inputPanely: window.height - inputPanel.height}}transitions: Transition {from: ""to: "visible"reversible: trueParallelAnimation {NumberAnimation {properties: "y"duration: 250easing.type: Easing.InOutQuad}}}onActiveChanged: {input.move(active ? -150 : 150)inputer.move(active ? -150 : 150)}}
}
最后实现的效果展示如图:

qml虚拟键盘的实现相关推荐

  1. Qt之QML虚拟键盘

    键盘样式一: 键盘样式二: Qt官方软键盘示例: 要想使用Qt中的虚拟键盘,需要以下几个步骤: 1.修改你的.pro文件,添加如下内容: static {QT += svgQTPLUGIN += qt ...

  2. QML之ubuntu下编译安装虚拟键盘中文输入法

    写在前面 1.一个兼容性问题:ubuntu14.04 + qt5.7以上版本开发时会遇到各种问题,多是由于类似于编译器等版本过低或者不兼容导致.建议使用ubuntu16.04 + qt5.9开发,两个 ...

  3. Qt 5.9 qml 使用自带虚拟键盘

      Qt有自己的虚拟键盘的插件,使用起来也非常方便,这里介绍在QtQuick中的使用方法.</> 键盘的集成方式 虚拟键盘的集成有两种方式: 键盘出现在桌面,即系统的屏幕上,键盘的宽度等于 ...

  4. qt qml virtrulKeyBoard custom style 虚拟键盘自定义样式方法

    今天我把纠结了好几天的qml自带的虚拟键盘自定义样式的功能实现了,成功修改键盘的样式颜色. 首先把官网的文档先复制一下, 后面会写我自己的实际操作方法, 英文水平真的很重要!!! Keyboard S ...

  5. 46.qt quick-自定义非常好看的qml虚拟软键盘-支持换肤、动态加载移除语言(二)

    在上章我们学习了45.qt quick-qml虚拟软键盘详解(一)_诺谦的博客-CSDN博客,知道如何自定义qml键盘后,本章继续来学习. 1.介绍 接下来我们便来自定义一款好看的qml软键盘.如下图 ...

  6. QLineEdit 中使用QML原生虚拟键盘Qt5VirtualKeyboard

    littleedit.qml 正常情况下,QT的文本控件输入功能无需QML参与,但在一些无键盘的特殊场景,只有触屏可用时,可以使用一些虚拟键盘,包括操作系统自带的tabtip.exe等.另外,还可以使 ...

  7. Qt-Arm交叉编译以及调用虚拟键盘(中英)

    环境:Qt5.15.1 交叉编译链:海思的板子,arm-himix200-linux- demo代码:Qt-Qml混合编程 第一步:环境搭建 1:从官网下载源码https://download.qt. ...

  8. Qt5.13.0虚拟键盘 使用文档说明及函数说明 (一)构建 build

    首先之前的工作都是为了想验证虚拟键盘的使用,才有了之前编译x11 .arm等qt的步骤. 在到这之前的构建环境,我说认真的,真的烦的要死,每次构建用的时间又多,配置完了编译会出一大堆error,加上公 ...

  9. Qt官方示例-虚拟键盘使用

    这是一个使用Qt虚拟键盘的QML文本输入示例.   该示例提供两种使用方式:一种用于桌面平台,另一种用于嵌入式平台,本例采用嵌入式平台方式显示.它们区别是前者脱离窗口应用于全局,后者依附于窗口. di ...

最新文章

  1. 修改title样式_css常见样式命名规则
  2. 达达真人漫画秀,微博演绎男版杜拉拉生存记
  3. 【干货】嘿,产品经理 ,这些技术是一定要懂的
  4. Tomcat部署Web应用
  5. 《无码的青春》第四章 程序员的二象性,左手流氓,右手疯子
  6. 第 6-2 课:SpringMVC 核心 + 面试题
  7. 马斯克:将打造一款2.5万美元电动汽车
  8. Spark报错:JDOFatalInternalException: Error creating transactional connection factory
  9. crypto在web的使用
  10. Android基础知识点的整理3
  11. mac airdrop 隔空投送 我可以发现别人,别人发现不了我。搜索不到。
  12. 如何判断channel是否已经关闭
  13. C语言:习题3-2 高速公路超速处罚.2021-07-27
  14. ppt矩形里面的图片怎么放大缩小_ppt 怎么让图片放大完成以后再缩小到原来的大小和位子!!!!...
  15. GRPC Connection Backoff Protocol
  16. 什么东西改善睡眠质量,辅助睡眠好物推荐
  17. linux下rsync命令,Linux 命令之rsync命令详解
  18. Linux----SUID提权复现
  19. 第十八届全国大学生智能汽车竞赛—英飞凌芯片支持计划
  20. 纹理、贴图、材质的区别

热门文章

  1. 吉首大学新星杯——小阳数数
  2. 机器学习入门:偏差和方差
  3. Window服务器指定某软件/服务开机自启动
  4. 人脸检测SRN网络笔记
  5. RF之处理鼠标悬停和alert弹窗事件
  6. option 的经典属性
  7. 【Django】Django Auth认证组件详述
  8. C#基础知识之托管代码和非托管代码
  9. 一键如何完成多张静态图合成GIF图?
  10. 手机浏览器 ajax错误,在IE浏览器中出现Ajax错误“undefined”