このページでは

導入ガイド

概要

このドキュメントでは、Qt アプリケーションでQt Virtual Keyboard プラグインを導入および使用する方法について説明します。

デプロイ

各種Qt Virtual Keyboard プラグインおよびファイルは、以下の場所に配置されます。

項目デスクトップ上のインストールパスBoot2Qtのインストールパス
qtvirtualkeyboardplugin プラットフォーム入力コンテキストプラグイン<QT_INSTALL_PLUGINS>/platforminputcontexts/system/plugins/platforminputcontexts
qtvkbplugin QMLプラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/system/qml/QtQuick/VirtualKeyboard
qtvkbcomponentsplugin QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Components/system/qml/QtQuick/VirtualKeyboard/Components
qtvkblayoutsplugin QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Layouts/system/qml/QtQuick/VirtualKeyboard/Layouts
qtvkbpluginsplugin QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Plugins/system/qml/QtQuick/VirtualKeyboard/Plugins
拡張機能 QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Plugins/*/system/qml/QtQuick/VirtualKeyboard/Plugins/*
qtvkbsettingsplugin QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Settings/system/qml/QtQuick/VirtualKeyboard/Settings
qtvkbstylesplugin QML プラグイン<QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Styles/system/qml/QtQuick/VirtualKeyboard/Styles
仮想キーボードデータ<QT_INSTALL_DATA>/qtvirtualkeyboard/system/qtvirtualkeyboard

依存関係

詳細は「Qt ライブラリのデプロイ」を参照してください。

統合方法

Qt Virtual Keyboard 現在、このプラグインを使用するための 2 つの統合方法がサポートされています:

  • Desktop: 既存のアプリケーションに変更を加える必要はありません。システム内のすべてのQtアプリケーションでQt Virtual Keyboardを利用できます。

    この統合方法では、キーボードは専用のトップレベルウィンドウに表示されます。

  • Application: QML内でInputPanel アイテムをインスタンス化することで、仮想キーボードをQtアプリケーション自体に組み込みます。

    この方法は、複数のトップレベルウィンドウがサポートされていない環境(組み込みデバイスなど)では必須ですが、デスクトップアプリケーションでも使用できます。

    この方法は、サーバー側の仮想キーボードを提供するために、Qt Wayland Compositorでも使用できます。詳細については、以下のセクションを参照してください。

統合方法は、プロジェクトファイルによって自動的に選択されます。ただし、デスクトップ環境では、環境変数 `QT_VIRTUALKEYBOARD_DESKTOP_DISABLE ` を使用するか、configure コマンドラインに `-no-vkb-desktop ` を追加することで、デスクトップ統合方法を上書きし、代わりにアプリケーション統合方法を使用することが可能です。

Qt Wayland でのQt Virtual Keyboard の使用

このセクションでは、Fancy Compositor サンプルをコンポジターとして使用し、Qt Virtual Keyboard を用いてQt Widgets の Line Edits サンプルを操作する方法について説明します。

この例の実行には Ubuntu 18.04 を使用し、ウィンドウシステムとして X11 を使用します。例のコンポジター(fancy-compositor )は、X11 セッション内のウィンドウとして開きます。

  1. コンポジターを起動します:
    QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl \
    QT_IM_MODULE=qtvirtualkeyboard ./fancy-compositor -platform xcb
  2. クライアントアプリケーションを実行する前に、QT_IM_MODULE が設定されていないことを確認してください:
    unset QT_IM_MODULE
  3. クライアントとして Line Edits サンプルを起動します:
    ./lineedits -platform wayland
  4. ラインエディットをクリックすると、Qt Virtual Keyboard の入力パネルが開きます。

問題が発生した場合は、コンポジターの実行時に以下の環境変数を設定することで、問題の診断に役立つデバッグ出力を取得できます:

WAYLAND_DEBUG=1
QT_LOGGING_RULES="qt.virtualkeyboard=true;qt.qpa.wayland*=true"

プラグインの読み込み

どちらの統合方法においても、アプリケーションは `QT_IM_MODULE ` 環境変数を使用してプラグインを読み込む必要があります。例:

$ QT_IM_MODULE=qtvirtualkeyboard myapp

または main() 関数内では:

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

デスクトップ統合方式では、Qt Virtual Keyboard を使用するために必要な手順はこのステップだけです。アプリケーション統合方式では、次の章で説明するように、アプリケーションがInputPanel のインスタンスを作成する必要があります。

InputPanelの作成

次の例は、InputPanel を作成し、画面領域をアプリケーションコンテナと分割する方法を示しています。

import QtQuick
import QtQuick.VirtualKeyboard

Item {
    id: root
    Item {
        id: appContainer
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.right: parent.right
        anchors.bottom: inputPanel.top
        ...
    }
    InputPanel {
        id: inputPanel
        y: Qt.inputMethod.visible ? parent.height - inputPanel.height : parent.height
        anchors.left: parent.left
        anchors.right: parent.right
    }
}

入力パネルは、アプリケーションコンテナの隣に配置される兄弟要素でなければなりません。入力パネルをアプリケーションコンテナ内に配置すると、アプリケーションの内容と重なってしまうため、配置しないことが重要です。また、入力パネルの高さは利用可能な幅に応じて自動的に更新されますが、入力パネルのアスペクト比は一定です。

プラグインのパラメータ

一部のパラメータは、QT_IM_MODULE の値の末尾(コロン「:」の後に)を追加することで指定できます。例:QT_IM_MODULE=qtvirtualkeyboard:wordCandidateListVisible 。一部のパラメータは、"=" で区切られたキーと値のペアです。

パラメータ目的
wordCandidateListVisible単語候補リストを表示します。
wordCandidateListAutoCommitWord単語候補リストの自動確定を有効にします。
fullScreen全画面モードを使用する
style=<name>スタイルを設定します
locale=<name>ロケールを設定する

環境変数

このモジュールによって定義されている環境変数はいくつかあり、以下に挙げます:

変数目的
QT_VIRTUALKEYBOARD_HUNSPELL_DATA_PATHHunspell データファイルの保存場所を上書きします。

デフォルトの場所は、QLibraryInfo::path(QLibraryInfo::DataPath) の値によって異なります。たとえば、ソースからビルドされたQtライブラリの場合、qtbase/qtvirtualkeyboard/hunspell となる可能性があります。

詳細については、「Hunspellの統合」を参照してください。

QT_VIRTUALKEYBOARD_PINYIN_DICTIONARYピンイン辞書の保存場所を上書きします。

デフォルトでは、辞書はプラグインのリソースに同梱されています。

リソースのバンドルを無効にするには、Qtのconfigureコマンドラインに-vkb-no-bundle-pinyinを追加してください。この場合、デフォルトの場所はQLibraryInfo::path(QLibraryInfo::DataPath) の値によって決まります。例えば、ソースからビルドされたQtライブラリの場合、qtbase/qtvirtualkeyboard/pinyin/dict_pinyin.dat となる可能性があります。

QT_VIRTUALKEYBOARD_CANGJIE_DICTIONARYCangjie辞書の保存場所を上書きします。

デフォルトでは、辞書はプラグインのリソースに同梱されています。

リソースのバンドルを無効にするには、Qtのconfigureコマンドラインに-vkb-no-bundle-tcimeを追加してください。この場合、デフォルトの場所はQLibraryInfo::path(QLibraryInfo::DataPath) の値によって異なります。たとえば、ソースからビルドされたQtライブラリの場合、qtbase/qtvirtualkeyboard/tcime/dict_cangjie.dat となる可能性があります。

QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY注音辞書の保存場所を上書きします。

デフォルトでは、辞書はプラグインのリソースに同梱されています。

リソースのバンドルを無効にするには、Qtのconfigureコマンドラインに-vkb-no-bundle-tcimeを追加してください。この場合、デフォルトの場所はQLibraryInfo::path(QLibraryInfo::DataPath) の値によって異なります。たとえば、ソースからビルドされたQtライブラリの場合、qtbase/qtvirtualkeyboard/tcime/dict_zhuyin.dat となる可能性があります。

QT_VIRTUALKEYBOARD_PHRASE_DICTIONARYフレーズ辞書の保存場所を上書きします。

デフォルトでは、辞書はプラグインのリソースにバンドルされています。

リソースのバンドルを無効にするには、Qtのconfigureコマンドラインに-vkb-no-bundle-tcimeを追加します。この場合、デフォルトの場所はQLibraryInfo::path(QLibraryInfo::DataPath) の値によって異なります。たとえば、ソースからビルドされたQtライブラリの場合、qtbase/qtvirtualkeyboard/tcime/dict_phrases.dat となる可能性があります。

QT_VIRTUALKEYBOARD_CERENCE_HWR_DB_PATHCerence Handwritingの筆跡データベースの場所を指定します。

Cerence Handwriting 手書きデータベースのデフォルトの検索場所は以下の通りです:

  • QT_VIRTUALKEYBOARD_CERENCE_HWR_DB_PATH
  • QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/cerence/handwriting"
  • ":/qt-project.org/imports/QtQuick/VirtualKeyboard/Cerence/Handwriting"

この環境変数には複数のパスを指定できます。複数のパスは、Windows ではセミコロンで、その他のオペレーティングシステムではコロンで区切ります。

QT_VIRTUALKEYBOARD_XT9_LDB_PATHXT9 データベースの保存場所を指定します。

LDB ファイルのデフォルトの検索場所は以下の通りです:

  • QT_VIRTUALKEYBOARD_XT9_LDB_PATH
  • QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/cerence/xt9"
  • ":/qt-project.org/imports/QtQuick/VirtualKeyboard/Cerence/Xt9"

この環境変数を設定することで、追加の検索パスを指定できます。複数のパスは、Windows ではセミコロンで、その他のオペレーティングシステムではコロンで区切ります。

LDB ファイルは XT9 プラグインと Cerence Handwriting プラグインで共有されるため、この環境変数は両方のプラグインに影響します。

QT_VIRTUALKEYBOARD_STYLE仮想キーボードで使用するスタイルの場所を指定します。

これは、QML で `VirtualKeyboardSettings::styleName` を設定するか、ビルド時に「構成オプション」を使用して指定することもできます。

QT_VIRTUALKEYBOARD_LAYOUT_PATH仮想キーボードで使用するレイアウトの場所を指定します。
QT_VIRTUALKEYBOARD_DESKTOP_DISABLEデスクトップ統合方法を無効にします。
QT_VIRTUALKEYBOARD_FORCE_EVENTS_WITHOUT_FOCUSQt Virtual Keyboard が、フォーカスされているテキスト入力フィールドがない状態でもキーイベントを送信し、Shift キーを使用できるようにします。

この機能を利用したいアプリケーションの実行環境において、この変数を明示的に設定する必要があります。アプリケーション本体でqputenv()を使用するだけでは不十分です。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.