如何更改Qt 5.7虚拟键盘布局/区域设置

时间:2016-11-09 12:46:49

标签: qt qml qt5.7 qtvirtualkeyboard

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

我的Qt安装是默认的Windows安装,它是最新的(只检查是否有更新)。

正如您在此处看到的,尽管我的操作系统区域设置为fi_FI,但键盘仍使用en_EN语言环境。并且还注意到“语言更改”按钮处于禁用状态。

enter image description here

我还尝试从键盘设置中列出可用的区域设置,我尝试通过键盘设置手动设置区域设置,但布局不会发生变化。 以下是我的代码:

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

目前虚拟键盘only uses English as the default language如果在构建时未指定语言。这将很快改变 - 可能在Qt 5.8。在此之前,您可以在构建模块时使用lang-all configuration option。或者,您可以使用lang-<code>选项启用单个语言;在该页面上有一个示例,提到您使用CONFIG+=lang-fi作为芬兰语(键盘的作者是芬兰语:)。