Qt QML 虚拟键盘(VirtualKeyboard )


简介

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

  • 示例在 QtCreator 软件可以找到:

  • 或在以下 Qt 安装目录找到:
C:\Qt\\Examples\\virtualkeyboard\basic
  • Qt 示例官方文档
doc.qt.io/qt5/qtvirtualkeyboardbasicexample

使用

(1)先在 .pro 文件中添加插件:

1 QT += quickwidgets 2 CONFIG += link_pkgconfig 3 4 # 使用静态插件 5 static

(2)在 mainpp 中添加以下代码,但要在QApplication a(argc, argv);前面:

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

(3)最后 QML 文件导入模块:

import QtQuick.VirtualKeyboard 2.1

然后 TetxInput 派生类的控件,获得焦点即可调出虚拟键盘(桌面平台)。

根据不同的输入方式显示不同的键盘

1 TextField

常用值有:

改写demo

这是我根据示例修改的一个 QML demo(嵌入式平台),代码如下:

1 import QtQuick 2.10 2 import QtQuick.Window 2.3 3 import QtQuickontrols 2.3 4 import QtQuick.VirtualKeyboard 2.1 5 import QtQuick.VirtualKeyboard.Settings 2.1 6 7 Window 19 20 TextField 37 38 // 当选择输入框的时候才显示键盘 39 onPressed: 44 } 45 46 TextField 64 // 当选择输入框的时候才显示键盘 65 onPressed: 70 } 71 72 property int inputX: 0 // 键盘x坐标(动态) 73 property int inputY: root.height // 键盘y坐标(动态) 74 75 // 嵌入式虚拟键盘 76 InputPanel 97 } 98 99 Cponent.onCpleted: 103 104 // 这种集成方式下点击隐藏键盘的按钮是没有效果的,只会改变active,因此我们自己处理一下 105 onActiveChanged: 107 } 108 } 109 110 }

效果如下:



上一篇:Qt QList的用法

下一篇:Qt 图表QCharts图例Legend介绍


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图