如何更改 Qt 5.7 虚拟键盘 layout/locale

How to change Qt 5.7 virtual keyboard layout/locale

我正在使用 qml 使用 Qt 5.7 编写一个小型 windows 应用程序。 对于我的项目,我需要能够更改虚拟键盘布局。但是经过几个小时阅读文档并尝试各种方法后,我仍然无法实现它。

我的 Qt 安装是默认 windows 安装并且是最新的(只是检查是否有更新)。

正如您在此处看到的,键盘使用 en_EN 语言环境,尽管我的 OS 语言环境是 fi_FI。还要注意语言更改按钮处于禁用状态。

我还尝试从键盘设置中列出可用的语言环境,并且尝试通过键盘设置手动设置语言环境,但布​​局不会改变。 这是我的代码:

InputPanel {
    id: keyboardPanel
    y: Qt.inputMethod.visible ? parent.height - keyboardPanel.height : parent.height
    anchors.left: parent.left
    anchors.right: parent.right
    Component.onCompleted: {
        console.log("locales available: " + VirtualKeyboardSettings.availableLocales)
        console.log("Locale before changing it: " + VirtualKeyboardSettings.locale)
        VirtualKeyboardSettings.locale = "fi_FI";
        console.log("Locale after changing it: " + VirtualKeyboardSettings.locale)
    }
}

运行 代码的结果是(键盘布局没有改变):

qml: locales available: 
qml: Locale before changing it: 
qml: Locale after changing it: fi_FI

我可以使用自定义布局,但我不明白如何更改为自定义布局....

如有任何帮助,我们将不胜感激。

当前构建模块时的虚拟键盘only uses English as the default language if no languages are specified when building. This will change soon - likely in Qt 5.8. Until then, you can use the lang-all configuration option。或者,您可以使用 lang-<code> 选项启用个别语言;该页面上有一个示例提到您将 CONFIG+=lang-fi 用于芬兰语(键盘的作者是芬兰语:))。