Sur cette page

Structure Qt Virtual Keyboard

Présentation

Ce document décrit comment compiler le plugin « Qt Virtual Keyboard ».

Le projet est divisé en sous-projets suivants :

examples/virtualkeyboard/basicQt Virtual Keyboard Application de démonstration
src/components/Qt Virtual Keyboard Plugin QML pour les composants (QtQuick.VirtualKeyboard.Components)
src/plugin/Qt Virtual Keyboard Plugin de contexte d'entrée de la plateforme. Ce plugin fournit l'interface QPlatformInputContext et sert de couche intermédiaire entre le contexte d'entrée QML et la plateforme.
src/plugins/Répertoire contenant les plugins Qt Virtual Keyboard (QtQuick.VirtualKeyboard.Plugins), qui implémentent des méthodes de saisie complexes, telles que HunspellInputMethod. La configuration lors de la compilation spécifie quels plugins sont compilés et chargés lors de l'exécution.
src/settings/Qt Virtual Keyboard Plugin QML « Settings » (QtQuick.VirtualKeyboard.Settings). Ce plugin fournit des paramètres configurables par l'application pour le clavier virtuel.
src/styles/Qt Virtual Keyboard Plugin QML « Styles » (QtQuick.VirtualKeyboard.Styles).
src/virtualkeyboard/Qt Virtual Keyboard Module et plugin QML.

Options de configuration

Le tableau ci-dessous répertorie les options de premier niveau permettant de configurer les fonctionnalités du clavier virtuel. Ces options sont transmises à l'outil configure.

OptionArgumentsDescriptionRemarques
-vkb-enable <code>[,<code>]*"Codes de langue pris en charge ou « all »Active la langue spécifiéeLes langues spécifiées peuvent être activées explicitement à l'aide de cette option. Chaque code de langue a le format langue[_pays], où :
  • «langue » est un code de langue ISO 639 à deux lettres en minuscules
  • pays est un code de pays ISO 3166 à deux lettres en majuscules

Cette option permet de définir la prise en charge linguistique selon les besoins. Le clavier virtuel peut prendre en charge une ou plusieurs langues à la fois.

Par exemple, la commande « -vkb-enable de_DE,fi_FI » active la prise en charge de l'allemand et du finnois.

Le clavier virtuel inclut automatiquement toutes les langues prises en charge si aucune autre langue n'est spécifiée.

-vkb-handwriting[no|example-hwr|myscript-hwr|cerence-hwr]Active ou désactive la saisie manuscriteCe drapeau active la saisie manuscrite. Par défaut, le moteur est automatiquement activé s'il se trouve dans le dossier des plugins approprié, même sans utiliser cette option. Cependant, en cas de coexistence des SDK MyScript et Cerence, l'une des options [no|myscript-hwr|cerence-hwr] doit être configurée. L'option example-hwr doit être activée explicitement. Cela peut être fait à des fins de développement et de test.
[-no]-vkb-arrow-keynavigationActive ou désactive la navigation à l’aide des touches fléchées du clavierPermet de contrôler le clavier à l’aide des touches fléchées et de la touche Entrée. Cette fonctionnalité est désactivée par défaut.
-vkb-style[standard|retro]Choisissez le style du clavier virtuelL'Qt Virtual Keyboard e prend en charge deux styles : standard et rétro. Les deux styles sont inclus dans le paquet, mais cette option vous permet de modifier le style par défaut intégré.
[-no]-vkb-sound-effectsActive ou désactive les effets sonoresCette option active ou désactive la prise en charge des effets sonores. Elle dépend du module Multimédia et est implicitement activée lorsque ce module est disponible. Notez que les fichiers d'effets sonores proprement dits sont définis dans le style de clavier ; l'activation de cette option ne suffit donc pas à elle seule à rendre les effets sonores audibles.
[-no]-vkb-cangjieActive ou désactive la méthode de saisie Cangjie pour le chinois traditionnel.Cette option active ou désactive la méthode de saisie Cangjie pour le chinois traditionnel. La méthode de saisie est activée par défaut si la prise en charge du chinois traditionnel est activée.
[-no]-vkb-zhuyinActive ou désactive la méthode de saisie Zhuyin pour le chinois traditionnel.Cette option active ou désactive la méthode de saisie Zhuyin pour le chinois traditionnel. La méthode de saisie est activée par défaut si la prise en charge du chinois traditionnel est activée.
[-no]-vkb-desktopActive ou désactive l'intégration au bureauPar défaut, l'intégration au bureau est activée lorsque l'environnement cible est un bureau X11 ou Windows. Cette option permet de désactiver l'intégration au bureau.

Remarque : pour l’intégration embarquée, où l’ InputPanel est instanciée par l’application, il n’est pas nécessaire d’utiliser explicitement cette option. Le clavier virtuel ne créera pas le panneau de saisie du bureau si l’application crée InputPanel avant que le focus ne soit placé sur un champ de saisie.

[-no]-vkb-layoutsActive ou désactive les dispositions intégréesPar défaut, le plugin du clavier virtuel contient la disposition de clavier anglaise. En spécifiant -no-vkb-layouts, la ou les dispositions intégrées sont exclues du plugin du clavier virtuel.

Remarque : dans ce cas de figure, la variable d’environnement « QT_VIRTUALKEYBOARD_LAYOUT_PATH » doit être définie sur le répertoire du système de fichiers contenant les dispositions de clavier personnalisées avant d’exécuter l’application.

-vkb-hunspell[no|3rdparty|system]Choisir l’intégration de HunspellForce l'utilisation de l'option spécifiée pour l'intégration de Hunspell. L'option 3rdparty sélectionne la version locale du code source de Hunspell à partir des fichiers de projet présents dans le dépôt du clavier virtuel. Cette option nécessite que le dépôt Git de Hunspell ait été cloné dans le répertoire src/plugins/hunspell/3rdparty/hunspell. L'option « system » sélectionne le paquet système via pkg-config. L'option « no » désactive le plugin Hunspell.
-vkb-no-bundle-pinyinn/aDésactive l’intégration des ressources pinyinCette option exclut les ressources pinyin du binaire du plugin. Elle peut être utilisée pour réduire la taille du binaire du plugin.
-vkb-no-bundle-tcimen/aDésactive l'intégration des ressources tcimeCette option exclut les ressources tcime du binaire du plugin. Elle peut être utilisée pour réduire la taille du binaire du plugin.
-vkb-cerence-sdkchemin/vers/cerence/sdkConfigure l'emplacement du SDK Cerence et active les intégrations Cerence Handwriting et XT9.Le fichier zip du SDK Cerence doit être décompressé à l'aide du script src/plugins/cerence/unpack.py. Par défaut, le SDK est décompressé dans src/plugins/cerence/sdk, où les scripts de compilation peuvent le récupérer automatiquement. Cependant, en utilisant le deuxième paramètre du script unpack.py, il est possible d’utiliser un autre emplacement pour le SDK. Dans ce cas, l’emplacement doit être transmis au script de compilation à l’aide du paramètre de ligne de commande -vkb-cerence-sdk.
-vkb-cerence-statichandwritingActive la liaison statique du moteur d’écriture manuscrite Cerence.Le moteur d’écriture manuscrite Cerence est lié dynamiquement par défaut. Utilisez -vkb-cerence-static pour forcer la liaison statique.
-vkb-bundle-cerence-hwr ou -vkb-bundle-cerencen/aActive l'intégration des ressources Cerence HandwritingCette option regroupe les ressources de Cerence Handwriting dans le binaire du plugin.
-vkb-bundle-xt9 ou -vkb-bundle-cerencen/aActive l'intégration des ressources XT9Cette option intègre les ressources XT9 dans le fichier binaire du plugin.
-vkb-myscript-sdkchemin/vers/myscript/sdkConfigure l'emplacement du SDK MyScript Text et active l'intégration de MyScript Handwriting.Le SDK MyScript Text (fichier zip), une fois décompressé dans le répertoire src/plugins/myscript/sdk, peut être détecté automatiquement par les scripts de compilation. Toutefois, le SDK peut être placé à un autre emplacement. Dans ce cas, l’emplacement doit être indiqué au script de compilation à l’aide du paramètre de ligne de commande -vkb-myscript-sdk.
-vkb-myscript-arch[x86|x64|armv7hf|armv7|arm64]Configure l’architecture CPU cibleLe SDK MyScript Text propose des bibliothèques partagées (dynamiques) pour différentes architectures de processeur : [x86|x64|armv7hf|armv7|arm64] pour Linux et [x86|x64] pour Windows. La configuration peut s'effectuer automatiquement. Toutefois, l’utilisateur peut également spécifier l’architecture CPU cible à l’aide du paramètre de ligne de commande « -vkb-myscript-arch ».

Intégration de Hunspell

Par défaut, HunspellInputMethod ne sera pas disponible tant que la bibliothèque Hunspell et les en-têtes de développement n’auront pas été détectés. Pour les cibles Linux/X11, la bibliothèque Hunspell peut être fournie en installant le paquet libhunspell-dev. Il est également possible de cloner le dépôt Git de Hunspell dans le répertoire src/plugins/hunspell/3rdparty/hunspell. Les sources sont automatiquement détectées par qmake et le projet sera configuré pour utiliser la version locale de Hunspell. Si les sources Hunspell sont utilisées, les fichiers de dictionnaire doivent également être copiés dans le répertoire src/plugins/hunspell/3rdparty/hunspell/data.

Voici un exemple de structure de répertoires après la mise en place des sources Hunspell et des fichiers de dictionnaire :

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

Intégration de l’écriture manuscrite Cerence

L'intégration de l'écriture manuscrite Cerence prend en charge les moteurs alphabétiques et CJK (chinois, japonais, coréen). Les deux moteurs sont intégrés via T9WriteInputMethod. La méthode de saisie est initialisée avec un seul moteur à la fois. La sélection du moteur s'effectue automatiquement en fonction des paramètres régionaux de saisie actuels.

Compatibilité avec Cerence Handwriting

Qt Virtual Keyboard est compatible avec Cerence Handwriting v8.7 ou une version ultérieure.

Préparatifs pour la compilation de Cerence Handwriting

Le contenu du SDK doit être décompressé à l'aide du script unpack.py situé dans le répertoire cerence. Cela garantit une structure de répertoires correcte permettant à CMake de trouver le contenu.

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

Le contenu sera ainsi décompressé dans le répertoire src/plugins/cerence/sdk, où CMake pourra le détecter automatiquement.

Vous pouvez également décompresser le contenu dans n’importe quel autre répertoire en ajoutant un paramètre supplémentaire à la ligne de commande. Dans ce cas, l’emplacement du SDK doit être indiqué au script configure.

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

Structure du SDK Cerence

Le contenu extrait du SDK se présente comme suit :

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

Le contenu de chaque répertoire est le suivant :

RépertoireDescriptionRemarques
apiCe répertoire doit contenir tous les fichiers APILes fichiers API se trouvent généralement dans les répertoires « api » et « public » du SDK, mais parfois dans le répertoire « demo ».

Lorsque vous utilisez simultanément les moteurs alphabétiques et CJK, les fichiers qui se chevauchent peuvent être copiés à partir de l'un ou l'autre des SDK.

dataCe répertoire doit contenir toutes les bases de données HWR et, éventuellement, les bases de données XT9.Base de données HWR pour le moteur d'écriture manuscrite alphabétique de Cerence :
  • _databas_le.bin

Base de données HWR pour le Cerence Handwriting CJK :

  • cjk_HK_std_le.hdb Chinois de Hong Kong
  • cjk_J_std_le.hdb Japonais
  • cjk_K_mkt_le.hdb Coréen
  • cjk_S_gb18030_le.hdb Chinois simplifié
  • cjk_T_std_le.hdb Chinois traditionnel

Base de données linguistique :

  • L'extension de fichier est soit .ldb, soit .phd
lib/<cible>/<lien>/<variante-moteur>Structure de répertoires contenant les versions cibles prises en charge.Ces répertoires doivent contenir les bibliothèques cibles souhaitées. Si des bibliothèques partagées et statiques sont présentes, les bibliothèques partagées sont privilégiées.

Le code d'intégration de Cerence Handwriting et XT9 est automatiquement activé lorsque le SDK Cerence est détecté.

Toutes les autres extensions doivent être supprimées du répertoire [qtbase]/plugins/virtualkeyboard avant de compiler les extensions Cerence afin d’éviter tout conflit de comportement lors de l’exécution. Les extensions Cerence ne nécessitent aucun autre plugin de clavier virtuel pour fonctionner.

Les bases de données d'écriture manuscrite et les bases de données linguistiques pour XT9 sont installées dans le répertoire [qtbase]/qtvirtualkeyboard/cerence. Il existe par ailleurs deux autres emplacements possibles pour ces fichiers :

  • Un emplacement d’exécution personnalisé défini par des variables d’environnement
  • L’option de ligne de commande -vkb-bundle-cerence pour intégrer les ressources dans les binaires du plugin

Intégration du SDK MyScript Text

MyScript Text est conçu pour développer des applications permettant la reconnaissance de texte manuscrit. MyScript Text prend en charge la reconnaissance de caractères isolés, de l’écriture cursive, de l’écriture en lettres majuscules et de l’écriture superposée. La reconnaissance de l’écriture superposée de MyScript est intégrée à Qt Virtual Keyboard. Elle permet de reconnaître des lettres, des mots ou des parties de mots écrits les uns au-dessus des autres, sans séparation explicite entre les fragments consécutifs. Elle est capable de fonctionner sur des appareils disposant de ressources mémoire et de CPU limitées.

Styles d’écriture manuscrite pris en charge par le SDK MyScript Text

L’utilisateur final peut écrire un fragment de mot par-dessus un autre, ou un caractère par-dessus un autre, comme illustré ci-dessous. Un espace entre deux mots écrits est automatiquement ajouté, ce qui évite d’avoir à effectuer un geste explicite.

Écriture d’un caractère par-dessus un autre
Écriture de fragments de mots les uns sur les autres

Langues prises en charge par le SDK MyScript Text

MyScript Superimposed prend en charge 72 langues.

Installation des packages du SDK MyScript Text

L’équipe de livraison de MyScript peut vous fournir les paquets sous forme d’archives .zip. Pour accéder à l’ensemble du code, des outils et des ressources nécessaires à la création de votre propre application de reconnaissance d’écriture manuscrite, extrayez tous les paquets dans le même dossier de destination que src/plugins/myscript/sdk, où CMake pourra les détecter automatiquement.

Vous pouvez également extraire les paquets dans n’importe quel autre répertoire. Dans ce cas, l’emplacement du SDK doit être indiqué au script de configuration.

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

La structure des fichiers doit ressembler à celle ci-dessous :

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

Voici la description du contenu de chaque répertoire :

RépertoireDescription
confContient les fichiers de configuration linguistique utilisés par le moteur pour configurer les ressources linguistiques.
docContient les fichiers de documentation HTML. Le fichier index.html affiche la page d'accueil.
edkContient le kit de développement du moteur (Engine Development Kit) et les éléments de programmation de l'écriture manuscrite pour chaque API de langage de programmation prise en charge, y compris des exemples de code.
engineContient les bibliothèques de chaque objet du moteur ; selon les plateformes cibles, il peut s'agir de fichiers SO, A ou DLL.
rdkContient le kit de développement de ressources (Resource Development Kit), c'est-à-dire des outils et des exemples permettant de créer des ressources personnalisées.
ressourcesContient des fichiers de ressources portant l'extension /c .res. Il s'agit de ressources binaires utilisées lors de l'exécution par les différentes technologies MyScript pour effectuer les diverses tâches de reconnaissance.
outilsContient des outils utiles pour les programmeurs, notamment InkTool pour tester l'écriture manuscrite.
voimContient les bibliothèques de la méthode de saisie de texte MyScript. Il s'agit d'un SDK d'extension du système de reconnaissance de texte MyScript, conçu pour créer facilement et rapidement des méthodes de saisie utilisant la reconnaissance de l'écriture manuscrite.

Configuration du certificat du SDK MyScript Text

Un certificat valide est obligatoire pour utiliser le SDK MyScript Text. Il s'agit d'une mesure de sécurité qui vous identifie de manière unique en tant que client légitime des technologies MyScript. Le certificat permet à MyScript de retracer l'identité des clients et les produits qui ont été achetés.

Le certificat est fourni dans le fichier « [your_login].vo.zip package ». Lorsque vous décompressez ce fichier, le certificat est automatiquement placé à l’emplacement approprié. Cela garantit que le certificat fonctionne immédiatement avec les services et les exemples de code qui vous ont été fournis.

Comment compiler « Qt Virtual Keyboard » avec le SDK MyScript Text

Le code d’intégration MyScript est automatiquement activé lorsque le SDK MyScript Text est détecté.

Les ressources linguistiques du SDK MyScript Text sont installées dans le répertoire [qtbase]/qtvirtualkeyboard/myscript.

Compilations statiques

Le Qt Virtual Keyboard peut être compilé et lié de manière statique à l’application. Cela implique que Qt soit également compilé de manière statique (à l’aide de l’option -static dans la ligne de commande configure).

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