Construction Qt Virtual Keyboard
Vue d'ensemble
Ce document décrit comment construire le plugin Qt Virtual Keyboard.
Le projet est divisé en plusieurs sous-projets :
| 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 plateforme. Ce plugin fournit l'interface QPlatformInputContext et fonctionne comme une couche entre le contexte d'entrée QML et la plateforme. |
| src/plugins/ | Un répertoire contenant les plugins Qt Virtual Keyboard (QtQuick.VirtualKeyboard.Plugins), qui implémentent des méthodes d'entrée complexes, telles que la méthode HunspellInputMethod. La configuration du moment de la construction spécifie quels plugins sont construits et chargés au moment 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 et plugin QML. |
Options de configuration
Le tableau ci-dessous contient les options de premier niveau permettant de configurer les fonctionnalités du clavier virtuel. Ces options sont transmises à l'outil configure.
| Option | Arguments | Description de l'option | Remarques |
|---|---|---|---|
| -vkb-enable <code>[,<code>]*" | Codes de langue pris en charge ou "tous | Active la langue spécifiée | Les langues spécifiées peuvent être explicitement activées à l'aide de cette option. Chaque code de langue a le format langue[_pays], où :
Cette option peut être utilisée pour définir la prise en charge de la langue selon les besoins. Le clavier virtuel peut prendre en charge une ou plusieurs langues à la fois. Par exemple, Le clavier virtuel inclut automatiquement toutes les langues prises en charge si aucune autre langue n'est spécifiée. |
| -vkb-écriture | [no|example-hwr|myscript-hwr|cerence-hwr] | Active ou désactive la saisie de l'écriture manuscrite | Cet indicateur permet d'activer la saisie de l'écriture manuscrite. Par défaut, le moteur est automatiquement activé s'il se trouve dans le bon dossier de plugins, même sans utiliser cette option. Cependant, si MyScript et Cerence SDK coexistent, l'une des options [no|myscript-hwr|cerence-hwr] doit être configurée. L'option example-hwr doit être explicitement activée. Cela peut être fait à des fins de développement et de test. |
| [-no]-vkb-arrow-keynavigation | Active ou désactive la navigation par touches fléchées pour le clavier | Permet de contrôler le clavier à l'aide des touches fléchées et des touches de retour. Cette fonction est désactivée par défaut. | |
| -vkb-style | [standard|retro] | Choisir le style du clavier virtuel | Le site Qt Virtual Keyboard supporte deux styles, standard et rétro. Les deux styles sont inclus dans le paquetage, mais cette option vous permet de changer le style par défaut. |
| [-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 Multimedia et est implicitement activée lorsque ce module est disponible. Notez que les fichiers d'effets sonores sont définis dans le style de clavier, de sorte que l'activation de cette option ne rend pas 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 d'entrée 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 d'entrée 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 du bureau | Par défaut, l'intégration du bureau est activée lorsque l'environnement cible est X11 ou Windows. Cette option permet de désactiver l'intégration du bureau. Remarque : pour l'intégration intégrée, où le site InputPanel est instancié par l'application, il n'est pas nécessaire d'utiliser cette option de manière explicite. 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 mis 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 du clavier anglais. En spécifiant -no-vkb-layouts, les dispositions intégrées sont exclues du greffon de clavier virtuel. Remarque : dans ce cas, la variable d'environnement | |
| -vkb-hunspell | [no|3rdparty|system] | Choisir l'intégration Hunspell | Force la méthode d'intégration Hunspell à l'option spécifiée. L'option 3rdparty sélectionne la construction locale du code source Hunspell en utilisant les fichiers de projet dans le repo 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 paquetage system via pkg-config. L'option no désactive le plugin Hunspell. |
| -vkb-no-bundle-pinyin | s.o. | Désactive le regroupement des ressources pinyin | Cette option exclut les ressources pinyin du binaire du plugin. Cette option peut être utilisée pour réduire la taille du binaire du plugin. |
| -vkb-no-bundle-tcime | s.o. | Désactive le regroupement des ressources tcime | Cette option exclut les ressources tcime du binaire du plugin. Cette option 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 construction peuvent le récupérer automatiquement. Cependant, en utilisant le second paramètre du script unpack.py, il est possible d'utiliser un emplacement différent pour le SDK. Dans ce cas, l'emplacement doit être transmis au script de compilation en utilisant le paramètre de ligne de commande -vkb-cerence-sdk. |
| -vkb-cerence-static | écriture | Active la liaison statique du moteur d'écriture manuscrite Cerence. | Le moteur Cerence Handwriting est lié dynamiquement par défaut. Utilisez -vkb-cerence-static pour forcer la liaison statique. |
| -vkb-bundle-cerence-hwr ou -vkb-bundle-cerence | s.o. | Active le regroupement des ressources Cerence Handwriting | Cette option permet de regrouper les ressources Cerence Handwriting dans le binaire du plugin. |
| -vkb-bundle-xt9 ou -vkb-bundle-cerence | s.o. | Active le regroupement des ressources XT9 | Cette option permet de regrouper les ressources XT9 dans le 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 (zip) qui est décompressé dans src/plugins/myscript/sdk, peut être récupéré automatiquement par les scripts de compilation. Cependant, le SDK peut être placé à un autre endroit. Dans ce cas, l'emplacement doit être transmis 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 du processeur cible | Le SDK MyScript Text propose des bibliothèques partagées (dynamiques) pour différentes architectures CPU - [x86|x64|armv7hf|armv7|arm64] pour Linux et [x86|x64] pour Windows. Il peut être configuré automatiquement. Cependant, l'utilisateur peut également spécifier l'architecture CPU cible en utilisant le paramètre de ligne de commande -vkb-myscript-arch. |
Intégration de Hunspell
Par défaut, HunspellInputMethod ne sera pas disponible si la bibliothèque Hunspell et les en-têtes de développement ne sont pas trouvés. Pour les cibles Linux/X11, la bibliothèque Hunspell peut être fournie en installant le paquet libhunspell-dev. Alternativement, le dépôt git de Hunspell peut être cloné 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 le Hunspell local. Si les sources Hunspell sont utilisées, les fichiers du dictionnaire doivent également être copiés dans le répertoire src/plugins/hunspell/3rdparty/hunspell/data.
Vous trouverez ci-dessous un exemple de la structure des répertoires après avoir configuré les sources Hunspell et les fichiers de dictionnaire :
3rdparty
└── hunspell
├── data
│ ├── en_GB.aff
│ └── en_GB.dic
├── hunspell <-- Hunspell git repository
└── CMakeLists.txtIntégration de Cerence Handwriting
L'intégration de Cerence Handwriting supporte les moteurs Alphabétique et CJK (Chinois Japonais Coréen). Les deux moteurs sont intégrés via T9WriteInputMethod. La méthode d'entrée est initialisée avec un seul moteur à la fois. La sélection du moteur se fait automatiquement en fonction de la région d'entrée actuelle.
Compatibilité avec Cerence Handwriting
Qt Virtual Keyboard est compatible avec Cerence Handwriting v8.7 ou plus récent.
Préparation de la compilation de Cerence Handwriting
Le contenu du SDK doit être décompressé en utilisant le script unpack .py situé dans le répertoire cerence. Cela garantit la structure de répertoire correcte pour que CMake puisse trouver le contenu.
$ cd src/plugins/cerence/ $ python unpack.py filename.zip
Le contenu sera décompressé dans le répertoire src/plugins/cerence/sdk, où CMake pourra le récupérer automatiquement.
Vous pouvez également décompresser le contenu dans un autre répertoire en ajoutant un paramètre supplémentaire à la ligne de commande. Dans ce cas, l'emplacement du SDK doit être transmis au script configure.
configure ... -vkb-cerence-sdk /path/to/cerence/sdk
Présentation du SDK Cerence
Le contenu extrait du SDK ressemble à ceci :
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
└───staticOù se trouve le contenu de chaque répertoire :
| 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". Lors de l'utilisation simultanée des moteurs Alphabétique et CJK, les fichiers qui se chevauchent peuvent être copiés à partir de l'un ou l'autre des SDK. |
| données | 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 Cerence Handwriting Alphabetic :
Base de données HWR pour l'écriture manuscrite CJK de Cerence :
Base de données linguistique :
|
| lib/<target>/<linkage>/<engine-variant> | Structure de répertoire contenant les versions cibles prises en charge. | Ces répertoires doivent contenir les bibliothèques cibles souhaitées. Si des bibliothèques statiques et partagées sont trouvées, les bibliothèques partagées sont préférées. |
Le code d'intégration Cerence Handwriting et XT9 est automatiquement activé lorsque le SDK Cerence est détecté.
Toutes les autres extensions doivent être nettoyées du répertoire [qtbase]/plugins/virtualkeyboard avant de construire les extensions Cerence afin d'éviter les conflits d'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 de langues pour XT9 sont installées dans le répertoire [qtbase]/qtvirtualkeyboard/cerence. En outre, il existe deux autres possibilités pour localiser 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 construire des applications qui permettent la reconnaissance de texte manuscrit. MyScript Text prend en charge la reconnaissance de caractères isolés, cursifs, imprimés et superposés. L'écriture superposée MyScript est intégrée dans Qt Virtual Keyboard. Il permet de reconnaître des lettres, des mots ou des parties de mots écrits les uns sur les autres, sans séparation explicite entre les fragments consécutifs. Il est capable de fonctionner sur des appareils à mémoire et à processeur limités.
Styles d'écriture de MyScript Text SDK
L'utilisateur final peut écrire un fragment de mot sur un autre, ou un caractère sur un autre, comme illustré ci-dessous. Les espaces entre deux mots écrits sont automatiquement ajoutés, de sorte qu'il n'est pas nécessaire d'effectuer un geste explicite.
Couverture linguistique de MyScript Text SDK
MyScript Superimposed prend en charge 72 langues.
Installation des packages MyScript Text SDK
L'équipe de livraison de MyScript peut vous fournir les paquets avec diverses archives .zip. Pour accéder à l'ensemble du code, des outils et des ressources nécessaires à la création de votre propre application d'écriture manuscrite, extrayez tous les paquets dans le même dossier de destination que src/plugins/myscript/sdk, où CMake peut les récupérer automatiquement.
Vous pouvez également extraire les paquets dans un autre répertoire. Dans ce cas, l'emplacement du SDK doit être transmis au script configure.
configure ... -vkb-myscript-sdk /path/to/myscript/sdk
La hiérarchie des fichiers doit ressembler à ce qui suit :
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.)
└─── confLa description du contenu de chaque répertoire est la suivante :
| Répertoire | Description |
|---|---|
| conf | Contient les fichiers de configuration des langues que le moteur utilise pour configurer les ressources linguistiques. |
| doc | Contient les fichiers de documentation HTML. Le fichier index.html affiche la page principale. |
| edk | Contient le kit de développement du moteur et les éléments de programmation de l'écriture manuscrite pour chaque API de langage de programmation pris en charge, y compris des exemples de code. |
| engine | Contient les bibliothèques de chaque objet de moteur, en fonction des plates-formes cibles, il peut s'agir d'un SO, d'un A ou d'une DLL. |
| rdk | Contient le kit de développement des ressources, c'est-à-dire des outils et des exemples pour créer des ressources personnalisées. |
| ressources | Contient des fichiers de ressources avec l'extension /c .res. Il s'agit de ressources binaires utilisées au moment de l'exécution par les différentes technologies MyScript pour réaliser les différentes tâches de reconnaissance. |
| outils | Contient des outils utiles pour les programmeurs, notamment InkTool pour tester l'encre. |
| voim | Contient les bibliothèques de la méthode d'entrée de texte MyScript. Il s'agit d'un SDK d'extension du système de reconnaissance MyScript Text, conçu pour créer facilement et rapidement des méthodes de saisie utilisant la reconnaissance de l'écriture manuscrite. |
Définition du certificat de MyScript Text SDK
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 aide MyScript à retracer l'identité des clients et les produits qui ont été achetés.
Le certificat est livré sur le site [your_login].vo.zip package. Lorsque vous décompressez ce paquet, le certificat est automatiquement placé à l'endroit approprié. Cela permet de s'assurer que le certificat fonctionne instantanément dans les services et les exemples de code qui vous ont été fournis.
Comment construire Qt Virtual Keyboard avec MyScript Text SDK
Le code d'intégration MyScript est automatiquement activé lorsque le MyScript Text SDK est détecté.
Les ressources linguistiques pour MyScript Text SDK sont installées dans le répertoire [qtbase]/qtvirtualkeyboard/myscript.
Constructions statiques
Le clavier virtuel peut être construit et lié statiquement à l'application. Cela implique que Qt soit également construit de manière statique (en utilisant 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.