qmlを使用してQt 5.7で小さなウィンドウアプリケーションを作成しています。 私のプロジェクトでは、仮想キーボードのレイアウトを変更する必要があります。しかし、ドキュメントを読んで何時間もしても、私はまだそれを達成することができません。Qt 5.7バーチャルキーボードレイアウト/ロケールの変更方法
QtのインストールはデフォルトのWindowsインストールで、最新の状態です(アップデートがあるかどうかがチェックされます)。
ご覧のとおり、OSロケールが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
私はカスタムレイアウトを使用することができますが、私は理解していませんでしたかカスタムレイアウトに変更することができます....
ご協力いただければ幸いです。
自分でキーボードを作成しましたか? – Mitch
いいえQt 5.7 http://doc.qt.io/qt-5/qtvirtualkeyboard-index.htmlにバンドルされています。ソースからビルドしませんでした。そのプレビルド版では複数のロケールとレイアウトが必要であることを理解しました。 – StefanR
デフォルトのロケールはen_ENではありません(このようなロケールはありません)。 en_GBはデフォルトです。 'Component.onCompleted:VirtualKeyboardSettings.locale = locale.name'では、ロケールを' ApplicationWindow'のものか必要なものに変更することができます。 – Orient