QT5 虚拟键盘 如何限制可用语言?

通过官方demo,可以正确使用虚拟键盘功能.但是发现默认采用中文输入,且有多个奇怪的语言可以切换,根本用不到.
希望能够删去其他语言选择,仅保留中英.默认英文输入.

查看了官网文档,和不少帖子.里面提到不少方法.但是测试下来可能是没理解对,都失败了.

这是我查看的部分内容:
https://blog.csdn.net/evil_11...
https://forum.qt.io/topic/768...
https://stackoverflow.com/que...

请教该如何实现

阅读 6.3k
1 个回答

翻官网接口找到解决办法了.不需要重新编译.

import QtQuick 2.12

import QtQuick.Controls 2.5

import QtQuick.VirtualKeyboard 2.4

import QtQuick.VirtualKeyboard.Settings 2.4


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 = "en_GB"
        }

        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
                }
            }
        }
    }
}

重点是QtQuick.VirtualKeyboard.Settings 中提供了两个设置项.
VirtualKeyboardSettings.activeLocales = ["en_GB","zh_CN"] ,设置允许的语言
VirtualKeyboardSettings.locale = "en_GB" 设置默认的语言

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进