Qt Quick における仮想キーボード
この例では、Qt Quick アプリケーションで仮想キーボードを使用する方法を示します。
この例には、デスクトップ用と組み込み用の2つの実装があります。前者のバージョンでは、仮想キーボードを使用して複数のテキスト・フィールドにテキスト入力を可能にし、後者のバージョンでは、同じUIを使用しますが、カスタムの仮想キーボードInputPanel を使用します。basic.pro
。次のスニペットは、CONFIGオプションに基づいて適切な実装を選択するために、qmakeプロジェクトがどのようにセットアップされるかを示しています:
!qtConfig(vkb-desktop) { DEFINES += MAIN_QML=\\\"basic-b2qt.qml\\\" } else { DEFINES += MAIN_QML=\\\"Basic.qml\\\" }
この例では、.qml
ファイルをロードする前にQT_IM_MODULE
環境変数を設定することで、仮想キーボードを有効にしています:
#include <QQuickView> #include <QGuiApplication> #include <QQmlEngine> int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QGuiApplication app(argc, argv); QQuickView view(QString("qrc:/%2").arg(MAIN_QML)); if (view.status() == QQuickView::Error) return -1; view.setResizeMode(QQuickView::SizeRootObjectToView); view.show(); return app.exec(); }
これに加えて、TextField とTextArea のカスタム項目を使用し、EnterKeyAction 添付プロパティを使用して[ENTER]キーの動作を設定します。
import QtQuick import QtQuick.Controls import QtQuick.VirtualKeyboard import "content" Rectangle { ... TextField { width: parent.width placeholderText: "One line field" enterKeyAction: EnterKeyAction.Next onAccepted: passwordField.focus = true } ... TextArea { id: textArea width: parent.width placeholderText: "Multiple line field" height: Math.max(206, implicitHeight) } }
TextField とTextArea コントロールは、それぞれのQt Quick Controls 2タイプをenterKeyEnabled
とenterKeyAction
プロパティで拡張しています。スニペット内のTextField とTextArea インスタンスは、デフォルトの動作を変更するためにこれらのプロパティを設定することができます。
サンプルを実行する
Qt Creator からサンプルを実行するには、Welcome モードを開き、Examples からサンプルを選択します。詳細については、Building and Running an Example を参照してください。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。