前言:qml默认的虚拟键盘默认英文输入,而且内置了大量不需要的如日文韩文等等输入法,切换中文非常麻烦,网上大片大片的让重新编译 qtvirtualkeyboard,但是,重新编译 qtvirtualkeyboard 需要搭建相同版本的qt环境,如果qt环境不是从0到1构建起来的话,这是一个非常麻烦的过程,尤其是针对一些芯片平台,官方提供的qt做了gpu加速的支持,但是闭源,重新编译意味着舍弃掉了gpu资源,得不偿失,思索了一下,qt官方既然放出来这个插件,就不应该只能通过源码去调整语言。
切换方法:本质是通过QtQuick.VirtualKeyboard.Settings进行设置,直接上代码(重要的就三行)
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.VirtualKeyboard 2.12
import QtQuick.VirtualKeyboard.Settings 2.1
ApplicationWindow {
id: window
visible: true
width: 800
height: 480
flags: Qt.Window | Qt.FramelessWindowHint
Column {
spacing: 10
anchors.centerIn: parent
TextField {
id:textUser
placeholderText: qsTr("User name")
}
}
InputPanel {
id: inputPanel
z: 99
x: 0
y: window.height
width: window.width
Component.onCompleted: {
VirtualKeyboardSettings.activeLocales = ["en_GB","zh_CN"]
VirtualKeyboardSettings.locale = "zh_CN"
}
states: State {
name: "visible"
when: inputPanel.active
PropertyChanges {
target: inputPanel
y: window.height - inputPanel.height
}
}
transitions: Transition {
from: ""
to: "visible"
reversible: true
ParallelAnimation {
NumberAnimation {
properties: "y"
duration: 250
easing.type: Easing.InOutQuad
}
}
}
}
}