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/basic | Qt 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.
| Option | Arguments | Description | Remarques |
|---|---|---|---|
| -vkb-enable <code>[,<code>]*" | Codes de langue pris en charge ou « all » | Active la langue spécifiée | Les langues spécifiées peuvent être activées explicitement à l'aide de cette option. Chaque code de langue a le format langue[_pays], où :
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 « 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 manuscrite | Ce 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-keynavigation | Active ou désactive la navigation à l’aide des touches fléchées du clavier | Permet 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 virtuel | L'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-effects | Active ou désactive les effets sonores | Cette 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-cangjie | Active 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-zhuyin | Active 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-desktop | Active ou désactive l'intégration au bureau | Par 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-layouts | Active ou désactive les dispositions intégrées | Par 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 « | |
| -vkb-hunspell | [no|3rdparty|system] | Choisir l’intégration de Hunspell | Force 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-pinyin | n/a | Désactive l’intégration des ressources pinyin | Cette 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-tcime | n/a | Désactive l'intégration des ressources tcime | Cette 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-sdk | chemin/vers/cerence/sdk | Configure 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-static | handwriting | Active 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-cerence | n/a | Active l'intégration des ressources Cerence Handwriting | Cette option regroupe les ressources de Cerence Handwriting dans le binaire du plugin. |
| -vkb-bundle-xt9 ou -vkb-bundle-cerence | n/a | Active l'intégration des ressources XT9 | Cette option intègre les ressources XT9 dans le fichier binaire du plugin. |
| -vkb-myscript-sdk | chemin/vers/myscript/sdk | Configure 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 cible | Le 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.txtInté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.zipLe 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/sdkStructure 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
└───staticLe contenu de chaque répertoire est le suivant :
| Répertoire | Description | Remarques |
|---|---|---|
| api | Ce répertoire doit contenir tous les fichiers API | Les 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. |
| data | Ce 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 :
Base de données HWR pour le Cerence Handwriting CJK :
Base de données linguistique :
|
| 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.
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/sdkLa 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.)
└─── confVoici la description du contenu de chaque répertoire :
| Répertoire | Description |
|---|---|
| conf | Contient les fichiers de configuration linguistique utilisés par le moteur pour configurer les ressources linguistiques. |
| doc | Contient les fichiers de documentation HTML. Le fichier index.html affiche la page d'accueil. |
| edk | Contient 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. |
| engine | Contient les bibliothèques de chaque objet du moteur ; selon les plateformes cibles, il peut s'agir de fichiers SO, A ou DLL. |
| rdk | Contient 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. |
| ressources | Contient 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. |
| outils | Contient des outils utiles pour les programmeurs, notamment InkTool pour tester l'écriture manuscrite. |
| voim | Contient 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.