このページでは

ビルドQt Virtual Keyboard

概要

このドキュメントでは、Qt Virtual Keyboard プラグインのビルド方法について説明します。

このプロジェクトは、以下のサブプロジェクトに分かれています:

examples/virtualkeyboard/basicQt Virtual Keyboard デモアプリケーション
src/components/Qt Virtual Keyboard コンポーネント QML プラグイン (QtQuick.VirtualKeyboard.Components)
src/plugin/Qt Virtual Keyboard プラットフォーム入力コンテキストプラグイン。このプラグインは QPlatformInputContext インターフェースを提供し、QML 入力コンテキストとプラットフォーム間の仲介層として機能します。
src/plugins/Qt Virtual Keyboard プラグイン(QtQuick.VirtualKeyboard.Plugins)を含むディレクトリ。HunspellInputMethodなどの複雑な入力方式を実装しています。ビルド時の設定により、どのプラグインをビルドし、実行時に読み込むかが指定されます。
src/settings/Qt Virtual Keyboard Settings QML プラグイン (QtQuick.VirtualKeyboard.Settings)。このプラグインは、仮想キーボードに関するアプリケーション側で設定可能な設定項目を提供します。
src/styles/Qt Virtual Keyboard Styles QML プラグイン (QtQuick.VirtualKeyboard.Styles)。
src/virtualkeyboard/Qt Virtual Keyboard モジュールおよび QML プラグイン。

設定オプション

以下の表には、仮想キーボードの機能を設定するための最上位オプションが記載されています。これらのオプションは、configureツールに渡されます。

オプション引数説明備考
-vkb-enable <code>[,<code>]*"サポートされている言語コード、または「all」指定された言語を有効にしますこのオプションを使用すると、指定された言語を明示的に有効にできます。各言語コードはlanguage[_country] の形式をとります。ここで:
  • languageは、小文字の 2 文字からなる ISO 639 言語コード
  • countryは、大文字の 2 文字からなる ISO 3166 国コード

このオプションを使用すると、必要に応じて言語サポートを定義できます。仮想キーボードは、一度に1つ以上の言語に対応可能です。

たとえば、-vkb-enable de_DE,fi_FI と指定すると、ドイツ語とフィンランド語のサポートが有効になります。

他の言語が指定されていない場合、仮想キーボードはサポートされているすべての言語を自動的に含みます。

-vkb-handwriting[no|example-hwr|myscript-hwr|cerence-hwr]手書き入力を有効または無効にしますこのフラグは手書き入力を有効にします。デフォルトでは、このオプションを使用しなくても、適切なプラグインフォルダにエンジンが存在すれば自動的に有効になります。ただし、MyScriptとCerence SDKが共存している場合は、[no|myscript-hwr|cerence-hwr]のいずれかを設定する必要があります。example-hwrオプションは明示的に有効にする必要があります。これは、開発やテストの目的で実行できます。
[-no]-vkb-arrow-keynavigationキーボードの矢印キーによるナビゲーションを有効または無効にします矢印キーとリターンキーを使用してキーボードを操作できるようにします。この機能はデフォルトで無効になっています。
-vkb-style[standard|retro]仮想キーボードのスタイルを選択しますQt Virtual Keyboard は、「standard」と「retro」の2つのスタイルに対応しています。どちらのスタイルもパッケージに含まれていますが、このオプションを使用すると、組み込みのデフォルトスタイルを変更することができます。
[-no]-vkb-sound-effects効果音の有効化または無効化このオプションは、効果音のサポートを有効または無効にします。これはマルチメディアモジュールに依存しており、そのモジュールが利用可能な場合は暗黙的に有効になります。実際の効果音ファイルはキーボードスタイルで定義されているため、このオプションを有効にしただけでは効果音が再生されない点に注意してください。
[-no]-vkb-cangjie繁体字中国語用の倉頡入力方式を有効または無効にします。このオプションは、繁体字中国語用の倉頡入力方式を有効または無効にします。繁体字中国語のサポートが有効になっている場合、この入力方式はデフォルトで有効になります。
[-no]-vkb-zhuyin繁体中国語向けの注音入力方式を有効または無効にします。このオプションは、繁体字中国語に対する注音入力方式を有効または無効にします。繁体字中国語のサポートが有効になっている場合、この入力方式はデフォルトで有効になります。
[-no]-vkb-desktopデスクトップ統合の有効化または無効化デフォルトでは、ターゲット環境が X11 または Windows デスクトップの場合、デスクトップ統合が有効になっています。このオプションを使用すると、デスクトップ統合を無効にできます。

注: アプリケーションによってInputPanel がインスタンス化される組み込み統合の場合 、このオプションを明示的に使用する必要はありません。フォーカスが入力フィールドに設定される前に、アプリケーションがInputPanel を作成した場合、仮想キーボードはデスクトップ入力パネルを作成しません。

[-no]-vkb-layouts組み込みのレイアウトを有効または無効にしますデフォルトでは、仮想キーボードプラグインには英語のキーボードレイアウトが含まれています。-no-vkb-layouts を指定すると、仮想キーボードプラグインから組み込みのレイアウトが除外されます。

注:この場合 、アプリケーションを実行する前に、環境変数 `QT_VIRTUALKEYBOARD_LAYOUT_PATH ` を、カスタムキーボードレイアウトが含まれるファイルシステムディレクトリに設定する必要があります。

-vkb-hunspell[no|3rdparty|system]Hunspellの統合方法を選択Hunspellの統合方法を指定されたオプションに強制的に設定します。「3rdparty」オプションは、仮想キーボードリポジトリ内のプロジェクトファイルを使用して、Hunspellソースコードのローカルビルドを選択します。このオプションを使用するには、HunspellのGitリポジトリがsrc/plugins/hunspell/3rdparty/hunspellディレクトリにクローンされている必要があります。「system」オプションは、pkg-config 経由でシステムパッケージを選択します。「no」オプションは、Hunspell プラグインを無効にします。
-vkb-no-bundle-pinyin該当なしピンインリソースのバンドルを無効化しますこのオプションは、プラグインバイナリからピンインリソースを除外します。このオプションを使用すると、プラグインバイナリのサイズを縮小できます。
-vkb-no-bundle-tcime該当なしtcimeリソースのバンドルを無効にするこのオプションは、プラグインバイナリからtcimeリソースを除外します。このオプションは、プラグインバイナリのサイズを縮小するために使用できます。
-vkb-cerence-sdkcerence/sdkへのパスCerence SDK の場所を設定し、Cerence Handwriting および XT9 との連携を有効にします。Cerence SDKのzipファイルは、src/plugins/cerence/unpack.pyスクリプトを使用して解凍する必要があります。デフォルトでは、SDKはsrc/plugins/cerence/sdkに解凍され、ビルドスクリプトが自動的にそれを参照できるようになります。 ただし、unpack.py スクリプトの 2 番目のパラメータを使用することで、SDK を別の場所に配置することも可能です。その場合、-vkb-cerence-sdk コマンドラインパラメータを使用して、その場所をビルドスクリプトに指定する必要があります。
-vkb-cerence-static手書きCerence Handwriting エンジンの静的リンクを有効にします。Cerence Handwriting エンジンは、デフォルトでは動的にリンクされます。静的リンクを強制するには、-vkb-cerence-staticを使用してください。
-vkb-bundle-cerence-hwrまたは-vkb-bundle-cerencen/aCerence Handwritingリソースのバンドルを有効にしますこのオプションは、Cerence Handwritingのリソースをプラグインバイナリにバンドルします。
-vkb-bundle-xt9または-vkb-bundle-cerence該当なしXT9リソースのバンドルを有効にしますこのオプションは、XT9リソースをプラグインバイナリにバンドルします。
-vkb-myscript-sdkMyScript SDKのパスMyScript Text SDK の配置場所を指定し、MyScript Handwriting の統合を有効にします。src/plugins/myscript/sdk に解凍された MyScript Text SDK (zip) は、ビルドスクリプトによって自動的に検出されます。ただし、SDK を別の場所に配置することも可能です。その場合は、-vkb-myscript-sdk というコマンドライン引数を使用して、その場所をビルドスクリプトに指定する必要があります。
-vkb-myscript-arch[x86|x64|armv7hf|armv7|arm64]ターゲットの CPU アーキテクチャを設定しますMyScript Text SDK は、Linux 向け[x86|x64|armv7hf|armv7|arm64]、Windows 向け[x86|x64]といった、さまざまな CPU アーキテクチャに対応した共有(動的)ライブラリを提供しています。これは自動的に設定されます。 ただし、ユーザーは-vkb-myscript-arch コマンドラインパラメータを使用して、ターゲットとなるCPUアーキテクチャを指定することも可能です。

Hunspell の統合

デフォルトでは、Hunspellライブラリと開発用ヘッダーが見つからない限り、HunspellInputMethodは利用できません。Linux/X11ターゲットの場合、libhunspell-devパッケージをインストールすることでHunspellライブラリを提供できます。 あるいは、Hunspellのgitリポジトリをsrc/plugins/hunspell/3rdparty/hunspellディレクトリにクローンすることもできます。ソースはqmakeによって自動的に検出され、プロジェクトはローカルのHunspellを使用するように設定されます。 Hunspellのソースを使用する場合は、辞書ファイルもsrc/plugins/hunspell/3rdparty/hunspell/dataディレクトリにコピーする必要があります。

Hunspellのソースコードと辞書ファイルの設定完了後のディレクトリ構造の例を以下に示します:

3rdparty
└── hunspell
    ├── data
    │   ├── en_GB.aff
    │   └── en_GB.dic
    ├── hunspell <-- Hunspell git repository
    └── CMakeLists.txt

Cerence 手書き入力統合

Cerence Handwriting 統合は、Alphabetic および CJK(中国語・日本語・韓国語)エンジンをサポートしています。両方のエンジンは T9WriteInputMethod を通じて統合されています。入力メソッドは、一度に 1 つのエンジンで初期化されます。エンジンの選択は、現在の入力ロケールに基づいて自動的に行われます。

Cerence Handwritingの互換性

Qt Virtual Keyboard Cerence Handwriting v8.7以降と互換性があります。

Cerence Handwriting のビルド準備

SDKの内容は、cerenceディレクトリにあるunpack .pyスクリプトを使用して解凍する必要があります。これにより、CMakeがコンテンツを正しく検出できるディレクトリ構造が確保されます。

$ cd src/plugins/cerence/
$ python unpack.py filename.zip

これにより、コンテンツはsrc/plugins/cerence/sdkディレクトリに展開され、CMake が自動的にそれを検出できるようになります。

あるいは、コマンドラインに追加のパラメータを指定することで、他の任意のディレクトリに展開することも可能です。この場合、SDK の場所をconfigureスクリプトに指定する必要があります。

configure ... -vkb-cerence-sdk /path/to/cerence/sdk

Cerence SDKの構成

SDKの展開後の構成は次のようになります:

sdk
├───t9write
│   ├───api
│   ├───data
│   │   ├───arabic
│   │   ├───hebrew
│   │   └───thai
│   └───lib
│       ├───linux
│       │   ├───arm64
│       │   │   ├───shared
│       │   │   │   ├───alphabetic
│       │   │   │   └───cjk
│       │   │   └───static
│       │   │       ├───alphabetic
│       │   │       └───cjk
│       │   └───x86_64
│       │       ├───shared
│       │       │   ├───alphabetic
│       │       │   └───cjk
│       │       └───static
│       │           ├───alphabetic
│       │           └───cjk
│       └───win32
│           ├───x86
│           │   ├───shared
│           │   │   ├───alphabetic
│           │   │   └───cjk
│           │   └───static
│           │       ├───alphabetic
│           │       └───cjk
│           └───x86_64
│               ├───shared
│               │   ├───alphabetic
│               │   └───cjk
│               └───static
│                   ├───alphabetic
│                   └───cjk
└───xt9
    ├───api
    ├───data
    └───lib
        ├───linux
        │   ├───arm64
        │   │   ├───shared
        │   │   └───static
        │   └───x86_64
        │       ├───shared
        │       └───static
        └───win32
            ├───x86
            │   ├───shared
            │   └───static
            └───x86_64
                ├───shared
                └───static

各ディレクトリの内容は以下の通りです:

ディレクトリ説明備考
apiこのディレクトリには、すべてのAPIファイルが含まれている必要がありますAPI ファイルは通常、SDK の「api」および「public」ディレクトリにありますが、「demo」ディレクトリにある場合もあります。

アルファベットエンジンと CJK エンジンを同時に使用する場合、重複するファイルはどちらの SDK からでもコピーできます。

dataこのディレクトリには、すべての HWR データベースと、必要に応じて XT9 データベースが含まれている必要があります。Cerence Handwriting Alphabetic 用の HWR データベース:
  • _databas_le.bin

Cerence Handwriting CJK用のHWRデータベース:

  • cjk_HK_std_le.hdb香港中国語
  • cjk_J_std_le.hdb日本語
  • cjk_K_mkt_le.hdb韓国語
  • cjk_S_gb18030_le.hdb簡体字中国語
  • cjk_T_std_le.hdb繁体字中国語

言語データベース:

  • ファイル拡張子は.ldbまたは.phdのいずれかです
lib/<ターゲット>/<リンク方式>/<エンジン・バリアント>サポートされているターゲットビルドを格納するディレクトリ構造。これらのディレクトリには、目的のターゲットライブラリが含まれている必要があります。共有ライブラリと静的ライブラリの両方が見つかった場合、共有ライブラリが優先されます。

Cerence SDK が検出されると、Cerence 手書き入力および XT9 統合コードが自動的に有効化されます。

実行時の動作の競合を避けるため、Cerence 拡張機能をビルドする前に、[qtbase]/plugins/virtualkeyboardディレクトリから他のすべての拡張機能を削除する必要があります。Cerence 拡張機能は、動作するために他の仮想キーボードプラグインを一切必要としません。

XT9 用の手書き認識データベースおよび言語データベースは、[qtbase]/qtvirtualkeyboard/cerenceディレクトリにインストールされます。さらに、これらのファイルを配置する場所として、他に 2 つの選択肢があります。

  • 環境変数で定義されたカスタム実行時パス
  • リソースをプラグインバイナリに埋め込むための-vkb-bundle-cerenceコマンドラインオプション

MyScript Text SDK との統合

MyScript Textは、手書きテキストの認識を可能にするアプリケーションの構築を目的として設計されています。MyScript Textは、単体文字、筆記体、活字体、および重ね書きの認識をサポートしています。 MyScriptの重ね書き機能は、Qt Virtual Keyboard に統合されています。これにより、連続する部分間に明確な区切りがない場合でも、互いに重なって書かれた文字、単語、または単語の一部を認識することが可能になります。また、メモリやCPUの性能が限られたデバイスでも動作します。

MyScript Text SDK の手書き入力スタイル

エンドユーザーは、下図に示すように、単語の一部を別の単語の上に、あるいは1つの文字を別の文字の上に書き込むことができます。2つの単語の間にスペースが自動的に挿入されるため、明示的な操作を行う必要はありません。

1つの文字を別の文字の上に重ねて書く
単語の断片を重なり合わせて書く

MyScript Text SDKの対応言語

MyScript Superimposed は 72 言語に対応しています。

MyScript Text SDK パッケージのインストール

MyScript デリバリーチームは、さまざまな.zip アーカイブを含むパッケージを提供します。独自の手書き文字認識アプリケーションを構築するために必要なすべてのコード、ツール、およびリソースにアクセスするには、すべてのパッケージを src/plugins/myscript/sdkと同じ保存先フォルダに解凍してください。そうすることで、CMake が自動的にそれらを認識できるようになります。

あるいは、パッケージを任意のディレクトリに展開することも可能です。その場合は、SDKの場所をconfigureスクリプトに指定する必要があります。

configure ... -vkb-myscript-sdk /path/to/myscript/sdk

ファイル階層は以下のようになります:

myscript
└── sdk
    ├─── conf
    ├─── doc
    ├─── edk
    ├─── engine
    │   └─── bin
    │       ├─── lin-arm64
    │       │   └─── *.so
    │       ├─── lin-armv7
    │       │   └─── *.so
    │       ├─── lin-armv7hf
    │       │   └─── *.so
    │       ├─── lin-x64
    │       │   └─── *.so
    │       ├─── lin-x86
    │       │   └─── *.so
    │       ├─── win-x64
    │       │   └─── *.dll
    │       ├─── win-x86
    │       │   └─── *.dll
    │       (etc.)
    ├─── rdk
    ├─── resources
    │   ├─── ar
    │   │   └─── *.res
    │   ├─── en_GB
    │   │   └─── *.res
    │   ├─── ja_JP
    │   │   └─── *.res
    │   ├─── ko_KR
    │   │   └─── *.res
    │   ├─── zh_CN
    │   │   └─── *.res
    │   (etc.)
    ├─── tools
    └─── voim
        ├─── api
        ├─── bin
        │   ├─── lin-arm64
        │   │   └─── *.so
        │   ├─── lin-armv7
        │   │   └─── *.so
        │   ├─── lin-armv7hf
        │   │   └─── *.so
        │   ├─── lin-x64
        │   │   └─── *.so
        │   ├─── lin-x86
        │   │   └─── *.so
        │   ├─── win-x64
        │   │   └─── *.dll
        │   ├─── win-x86
        │   │   └─── *.dll
        │   (etc.)
        └─── conf

各ディレクトリの内容の説明は以下の通りです:

ディレクトリ説明
confエンジンが言語リソースの設定に使用する言語設定ファイルが含まれています。
docHTMLドキュメントファイルが含まれています。ファイル「index.html 」はメインページを表示します。
edkエンジン開発キット(Engine Development Kit)と、サポートされている各プログラミング言語のAPIに対応した手書き認識プログラミング要素(コードサンプルを含む)が含まれています。
engine各エンジンオブジェクトのライブラリが含まれています。ターゲットプラットフォームに応じて、SO、A、またはDLLの形式となります。
rdkリソース開発キット(Resource Development Kit)が含まれています。これは、カスタムリソースを作成するためのツールやサンプルです。
リソース拡張子が /c .res のリソースファイルが含まれています。これらは、さまざまな認識タスクを実行するために、MyScriptの各テクノロジーが実行時に使用するバイナリアセットです。
ツールインクテスト用のInkToolなど、プログラマー向けの便利なツールが含まれています。
voimMyScript Text Input Methodのライブラリが含まれています。これはMyScript Text認識システムの拡張SDKであり、手書き文字認識を用いた入力メソッドを簡単かつ迅速に構築できるよう設計されています。

MyScript Text SDK の証明書の設定

MyScript Text SDK を使用するには、有効な証明書が必須です。これは、お客様を MyScript テクノロジーの正規の顧客として一意に識別するためのセキュリティ対策です。この証明書により、MyScript は顧客の身元や購入された製品を追跡することができます。

証明書は「[your_login].vo.zip package 」に含まれています。このパッケージを解凍すると、証明書は自動的に適切な場所に配置されます。これにより、提供されたサービスやコードサンプル内で、証明書が即座に機能するようになります。

MyScript Text SDK を含むQt Virtual Keyboard のビルド方法

MyScript Text SDK が検出されると、MyScript 統合コードが自動的に有効化されます。

MyScript Text SDK用の言語リソースは、[qtbase]/qtvirtualkeyboard/myscriptディレクトリにインストールされます。

静的ビルド

Qt Virtual Keyboard をビルドし、アプリケーションに対して静的にリンクすることができます。これは、Qt も静的にビルドされる(configure コマンドラインで -static オプションを使用)ことを意味します。

© 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.