QML —— 使用Qt虚拟键盘示例(附完整源码)

示例效果

使用"虚拟键盘"注意 (例子的Qt版本:5.12.4)

注意一:
     /* 必须在main.cpp开始处加入如下代码,否则无法使用"虚拟键盘" */
     qputenv(“QT_IM_MODULE”,QByteArray(“qtvirtualkeyboard”));


注意二:
     键盘大小是根据宽度自动计算的,所以,应用程序应该只设置InputPanel 的宽度和y 坐标,不能设置高度。

源码

     main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);// 必须加入否则无法使用"虚拟键盘"qputenv("QT_IM_MODULE",QByteArray("qtvirtualkeyboard"));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();
}


     main.qml

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.5import QtQuick.VirtualKeyboard 2.2
import QtQuick.VirtualKeyboard.Settings 2.2Window
{id: rootvisible: truewidth: 800height: 600title: qsTr("Hello World")ColumnLayout{anchors.top: parent.topanchors.topMargin: root.height * 0.2anchors.horizontalCenter: parent.horizontalCenterspacing: 25RowLayout{spacing: 25Text{text: qsTr("用户名:")font.family: "微软雅黑"font.pixelSize: 20}TextField{placeholderText: "输入用户名.."font.family: "微软雅黑"font.pixelSize: 16Layout.preferredWidth: root.width * 0.25background: Rectangle{radius: 4border.color: parent.focus  ? "#498ff8" : "#C4DBFC"}}}RowLayout{spacing: 25Text{text: qsTr("密   码:")font.family: "微软雅黑"font.pixelSize: 20}TextField{placeholderText: "输入密码.."font.family: "微软雅黑"font.pixelSize: 16Layout.preferredWidth: root.width * 0.25background: Rectangle{radius: 4border.color: parent.focus  ? "#498ff8" : "#C4DBFC"}}}}InputPanel{id: inputPannelIDz: 99y: root.height      // 默认让其处于窗口最下方,貌似隐藏一样width: root.widthvisible: true       // 一直显示states: State {name: "visible"when: inputPannelID.activePropertyChanges {target: inputPannelIDy: root.height-inputPannelID.height}}transitions: Transition {from: ""to: "visible"reversible: trueParallelAnimation {NumberAnimation {properties: "y"duration: 250easing.type: Easing.InOutQuad}}}Component.onCompleted:{VirtualKeyboardSettings.styleName = "retro"                         // 复古样式VirtualKeyboardSettings.wordCandidateList.alwaysVisible = trueVirtualKeyboardSettings.activeLocales = ["en_US","zh_CN","ja_JP"]   // 英语、中文、日语 (若不设置,则语言就有很多种)}}
}

关注

笔者 - jxd

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

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

相关文章

苹果MacOS12系统 Monterey最新正式版下载 MacOS12系统镜像包

macOS 12 Monterey是苹果公司最新发布的操作系统&#xff0c;为Mac用户带来了更强大、更智能的功能和体验。 这个版本引入了许多令人兴奋的新特性&#xff0c;其中包括革命性的Universal Control功能&#xff0c;让你可以无缝地在Mac和iPad之间进行操作。只需将iPad放在Mac附近…

OpenCV的安装和vscode的配置

在图像处理领域&#xff0c;OpenCV的使用是必不可少的&#xff0c;这里介绍一下OpenCV的安装及其在vscode中的配置 1.OpenCV的安装 &#xff08;1&#xff09;安装依赖 sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavc…

GEE——土地利用分类种两个矢量集合中不同列进行相减的方式(利用join进行连接处理)

问题: 我有两个具有相同 ID 的特征集,我想从第二个特征集中减去第一个特征集的表格单元格。 我使用了这个函数,但它计算的是表 1 中第一个元素与表 2 中其他元素的减法。 我想逐个单元格计算减法。第一个表格中 id 为 1 的单元格减去第二个表格中 id 为 1 的单元格,2x2、…

主线程退出后子线程是否还会正常运行?

问题&#xff1a; 父子线程的关系 今天突然有感而发&#xff0c; 想要来探讨一下主线程和子线程之间的关系。 例一&#xff1a;子线程执行时间较父线程慢 public class ThreadTest {public static void main(String[] args) {// 测试主线程 和 子线程Thread sonThread new …

Python 教程 01:Python 简介及发展历史

ℹ️说明&#xff1a;关于本教程的一些约定 ① 教程后有&#xff08;选读&#xff09;的表示此教程为扩展内容&#xff0c;选读&#xff1b; ② 教程中涉及到的代码片段有时候并非代码块&#xff0c;而是图片&#xff0c;这是防止初学者直接复制代码粘贴的行为&#xff0c;想必…

应用OpenCV绘制箭头

绘制箭头函数 方法&#xff1a;函数cv2.arrowedLine( ) 语法格式&#xff1a;cv2.arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) 参数说明&#xff1a; img&#xff1a;要画的直线所在的图像&#xff0c;也称为画布。。 pt1&#x…

【CSS】文字描边的三种实现方式

目录 1. 可行的几种方式1.1. text-shadow 描边代码优缺点 1.2. text-stroke 描边实现优缺点 1.3. svg 描边实现优缺点 总结 1. 可行的几种方式 text-shadow–webkit-text-strokesvg 1.1. text-shadow 描边 MDN text-shadow 代码 <div class"text stroke">…

Ubuntu软件和vmware下载

https://cn.ubuntu.com/download/desktop VMware 中国 - 交付面向企业的数字化基础 | CN

HttpRunner自动化测试工具之获取响应数据extract提取值到变量

获取响应数据 extract: 提取 注&#xff1a;extract 应与request保持同一层级 1、响应行&#xff0c;响应头&#xff1b;通过 extract 提取响应的数据并存储到变量中&#xff0c;如下图&#xff1a; 注&#xff1a;变量名的前面要有 - # 获取响应数据: 响应行&#xff08;…

【比赛专题】江苏省信息安全管理与评估 理论题样题题库整理

GZ032 信息安全管理与评估赛题第1套 一、 单选题 &#xff08;每题 2 分&#xff0c;共 35 题&#xff0c;共 70 分&#xff09; 1、《中华人民共和国数据安全法》已由中华人民共和国第十三届全国人民代 表大会常务委员会第二十九次会议通过&#xff0c;现予公布&#xff0c;自…

蓝桥杯基础知识1 字母大小写转换

蓝桥杯基础知识1 字母大小写转换 isalpha()判断一个字符是否为字母。 isalnum()判断一个字符是否为十进制数字字符或者字母&#xff0c;是否属于a~ z或A~ Z或0~9。 isdigit() 判断一个字符是否是十进制数字字符。十进制数字是&#xff1a;0 1 2 3 4 5 6 7 8 9 isalnum()和isdig…

【python】合并具有相同数字前缀的 CSV 文件

一、问题 有一个文件目录&#xff0c;目录下有类似下列文件名&#xff1a;1_a.csv、1_b.csv、1_c.csv、2_a.csv、2_b.csv、2_c.csv......即下划线前面数字相同的不同csv文件有几个&#xff0c;他们的行数相同&#xff0c;列名不同。 想把这个目录下&#xff0c;数字相同的几个…

YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)

一、本文介绍 本文给大家带来的是损失函数改进VFLoss损失函数,VFL是一种为密集目标检测器训练预测IoU-aware Classification Scores(IACS)的损失函数,我经过官方的版本将其集成在我们的YOLOv8的损失函数使用上,其中有很多使用的小细节(否则按照官方的版本使用根本拟合不了…

讨好自己的五大法宝,让生活更精彩

在这个繁忙的世界里&#xff0c;让生活更精彩并不难&#xff0c;关键是你愿不愿意给自己一点小惊喜。让我们一起探讨一下&#xff0c;如何用五大小法宝&#xff0c;讨好自己&#xff0c;让生活更加美好。 1. 每周安排“自己时间” 在繁忙的工作和学习之余&#xff0c;留出每周…

echart图表

首先我们要知道ECharts是什么,它是怎么用的&#xff1f; ECharts是一个使用JavaScript实现的开源可视化库&#xff0c;它涵盖各行业图表&#xff0c;满足各种需求。它提供了丰富的图表类型和交互能力&#xff0c;使用户能够通过国简单的配置生成各种各样的图表&#xff0c;包括…

使用opencv做双目测距(相机标定+立体匹配+测距)

最近在做双目测距&#xff0c;觉得有必要记录点东西&#xff0c;所以我的第一篇博客就这么诞生啦~ 双目测距属于立体视觉这一块&#xff0c;我觉得应该有很多人踩过这个坑了&#xff0c;但网上的资料依旧是云里雾里的&#xff0c;要么是理论讲一大堆&#xff0c;最后发现还不知…

钡铼分布式IO在玻璃制造中的实时数据采集与监控应用介绍

导读 玻璃行业多年来一直广泛使用 PLC 来帮助管理生产过程所需的精确材料比例&#xff0c;完全依赖其PLC进行数据采集与控制&#xff0c;并且大量依靠人工来操作&#xff0c;所以这些高成本推动了对成本较低的替代方案的需求。 场景描述 某玻璃厂生产的玻璃生产包括配料段、熔…

Debezium发布历史49

原文地址&#xff1a; https://debezium.io/blog/2019/02/19/reliable-microservices-data-exchange-with-the-outbox-pattern/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 使用发件箱模式进行可靠的微服务数…

开源框架 MIT 是什么是否可以商用

MIT开源协议是一种宽松的开源许可证&#xff0c;允许软件在保留版权和许可证声明的前提下&#xff0c;免费使用、复制、修改、合并、出版、分发、再授权和销售等。该许可证适用于几乎所有类型的软件&#xff0c;包括商业软件和专有软件。MIT许可证的底层原理是&#xff0c;通过…

React(2): 使用 html2canvas 生成图片

使用 html2canvas 生成图片 需求 将所需的内容生成图片div 中包括 svg 等 前置准备 "react": "^18.2.0","react-dom": "^18.2.0","html2canvas": "^1.4.1",实现 <div ref{payRef}></div>const pa…