qt / qml虚拟键盘只允许选择中英文及默认中文配置

前言: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
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值