Как изменить раскладку виртуальной клавиатуры Qt 5.7

Я пишу небольшое приложение для Windows с Qt 5.7, используя qml. Для моего проекта мне нужно было бы изменить виртуальную раскладку клавиатуры. Но после нескольких часов чтения документов и пробных попыток я все еще не могу этого достичь.

Моя установка Qt является установкой Windows по умолчанию, и она актуальна (только что проверил, будут ли обновления).

Как вы можете видеть здесь, клавиатура использует локаль en_EN, несмотря на то, что моя локаль ОС - fi_FI. А также обратите внимание, что кнопка Language Change находится в отключенном состоянии.

Я также попытался перечислить доступные локали в настройках клавиатуры и попытался установить локаль вручную через настройки клавиатуры, но раскладка не изменится. Вот мой код для этих вещей:

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 ответ

Решение

В настоящее время виртуальная клавиатура использует английский в качестве языка по умолчанию, если языки не указаны при сборке. Это скоро изменится - скорее всего, в Qt 5.8. До тех пор вы можете использовать lang-all опция конфигурации при сборке модуля. Кроме того, вы можете включить отдельные языки, используя lang-<code> вариант; на этой странице есть пример, который упоминает, что вы будете использовать CONFIG+=lang-fi для финского языка (автор клавиатуры финский:)).

Другие вопросы по тегам