【发布时间】:2016-11-09 12:46:49
【问题描述】:
我正在使用 qml 使用 Qt 5.7 编写一个小型 Windows 应用程序。 对于我的项目,我需要能够更改虚拟键盘布局。但是经过数小时的阅读文档和尝试各种事情后,我仍然无法实现它。
我的 Qt 安装是默认的 windows 安装,它是最新的(只是检查是否会有更新)。
正如您在此处看到的,尽管我的操作系统语言环境是 fi_FI,但键盘使用 en_EN 语言环境。还要注意语言更改按钮处于禁用状态。
我还尝试从键盘设置中列出可用的语言环境,并尝试通过键盘设置手动设置语言环境,但布局不会改变。 这是我的代码:
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
我可以使用自定义布局,但我不明白如何更改为自定义布局....
任何帮助将不胜感激。
【问题讨论】:
-
键盘是你自己做的吗?
-
No.. 它与 Qt 5.7 doc.qt.io/qt-5/qtvirtualkeyboard-index.html 捆绑在一起,而且我不是从我自己的源代码中构建它的。我知道它应该在该预构建版本中具有多个语言环境和布局。
-
默认语言环境不是 en_EN(没有这样的语言环境)。 en_GB 是默认值。在
Component.onCompleted: VirtualKeyboardSettings.locale = locale.name中,您可以将语言环境更改为ApplicationWindow的一个或任何您想要的。 -
由于键盘默认编译时仅使用 en_GB,因此您无法像 @Orient 那样更改语言环境。是的,没有像 en_EN 这样的语言环境,我的错。
标签: qt qml qt5.7 qtvirtualkeyboard