Guide de déploiement
Présentation
Ce document décrit comment déployer et utiliser le plugin « Qt Virtual Keyboard » avec des applications Qt.
Déploiement
Les différents plugins et fichiers d'Qt Virtual Keyboard sont déployés aux emplacements suivants :
| Élément | Chemin d'installation sur le bureau | Chemin d'installation de Boot2Qt |
|---|---|---|
| qtvirtualkeyboardplugin : plugin de contexte d'entrée de la plateforme | <QT_INSTALL_PLUGINS>/platforminputcontexts | /system/plugins/platforminputcontexts |
| Plugin QML « qtvkbplugin » | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard | /system/qml/QtQuick/VirtualKeyboard |
| Plugin QML « qtvkbcomponentsplugin » | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Components | /system/qml/QtQuick/VirtualKeyboard/Components |
| Plugin QML « qtvkblayoutsplugin » | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Layouts | /system/qml/QtQuick/VirtualKeyboard/Layouts |
| qtvkbpluginsplugin : plugin QML | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Plugins | /system/qml/QtQuick/VirtualKeyboard/Plugins |
| plugins QML d'extension | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Plugins/* | /system/qml/QtQuick/VirtualKeyboard/Plugins/* |
| qtvkbsettingsplugin : plugin QML | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Settings | /system/qml/QtQuick/VirtualKeyboard/Settings |
| qtvkbstylesplugin : plugin QML | <QT_INSTALL_QML>/QtQuick/VirtualKeyboard/Styles | /system/qml/QtQuick/VirtualKeyboard/Styles |
| Données du clavier virtuel | <QT_INSTALL_DATA>/qtvirtualkeyboard | /system/qtvirtualkeyboard |
Dépendances
Pour en savoir plus, consultez la section Déploiement des bibliothèques Qt.
Méthode d'intégration
Qt Virtual Keyboard Prend actuellement en charge deux méthodes d'intégration alternatives pour l'utilisation du plugin :
Desktop: ne nécessite aucune modification des applications existantes. Le clavier virtuel est disponible pour toutes les applications Qt du système.Avec cette méthode d'intégration, le clavier s'affiche dans une fenêtre dédiée de premier plan.
Application: le clavier virtuel est intégré directement dans l'application Qt elle-même en instanciant un élément « InputPanel » dans QML.Cette méthode est obligatoire dans les environnements ne prenant pas en charge plusieurs fenêtres de premier niveau (tels que les appareils embarqués), mais peut également être utilisée dans les applications de bureau.
Cette méthode peut également être utilisée par les Qt Wayland Compositors afin de fournir un clavier virtuel côté serveur. Reportez-vous à la section ci-dessous pour plus de détails.
La méthode d’intégration est automatiquement sélectionnée par les fichiers de projet. Cependant, dans les environnements de bureau, il est possible de remplacer la méthode d’intégration au bureau par la méthode d’intégration à l’application, soit en utilisant la variable d’environnement ` QT_VIRTUALKEYBOARD_DESKTOP_DISABLE `, soit en ajoutant ` -no-vkb-desktop ` à la ligne de commande ` configure `.
Utilisation de ` Qt Virtual Keyboard ` avec Qt Wayland
Cette section explique comment utiliser Qt Virtual Keyboard pour interagir avec l’exemple «Qt Widgets Line Edits » en utilisant l’exemple « Fancy Compositor » comme compositeur.
Nous utiliserons Ubuntu 18.04 pour exécuter l’exemple, en utilisant X11 comme système de fenêtrage. Le compositeur de l’exemple (fancy-compositor) s’ouvrira sous forme de fenêtre au sein d’une session X11.
- Lancez le compositeur :
QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl \ QT_IM_MODULE=qtvirtualkeyboard ./fancy-compositor -platform xcb - Avant d'exécuter l'application cliente, assurez-vous que la variable QT_IM_MODULE n'est pas définie :
unset QT_IM_MODULE - Lancez l'exemple Line Edits en tant que client :
./lineedits -platform wayland - Cliquez sur un champ de saisie et le panneau de saisie d'Qt Virtual Keyboard s'ouvrira.
En cas de problème, les variables d'environnement suivantes peuvent être définies lors de l'exécution du compositeur afin d'obtenir des informations de débogage permettant de diagnostiquer le problème :
WAYLAND_DEBUG=1
QT_LOGGING_RULES="qt.virtualkeyboard=true;qt.qpa.wayland*=true"Chargement du plugin
Dans les deux méthodes d'intégration, l'application doit utiliser la variable d'environnement QT_IM_MODULE pour charger le plugin. Par exemple :
$ QT_IM_MODULE=qtvirtualkeyboard myappou dans la fonction main() :
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));Dans la méthode d’intégration au bureau, cette étape suffit pour utiliser Qt Virtual Keyboard. Dans la méthode d’intégration à l’application, celle-ci doit créer une instance de InputPanel, comme expliqué dans le chapitre suivant.
Création d’un InputPanel
L’exemple suivant montre comment créer un InputPanel et comment diviser la zone d’écran avec le conteneur d’application.
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
}
}Le panneau de saisie doit être un élément frère situé à côté du conteneur d’application. Il est important de ne pas placer le panneau de saisie à l’intérieur du conteneur d’application, car il se superposerait alors au contenu de l’application. De plus, la hauteur du panneau de saisie sera automatiquement mise à jour en fonction de la largeur disponible ; le rapport hauteur/largeur du panneau de saisie est constant.
Paramètres du plugin
Certains paramètres peuvent être spécifiés en les ajoutant à la valeur de l’ QT_IM_MODULE (après deux points), par exemple QT_IM_MODULE=qtvirtualkeyboard:wordCandidateListVisible. Certains paramètres sont des paires clé-valeur séparées par "=".
| Paramètre | Objectif |
|---|---|
| wordCandidateListVisible | Affiche la liste des mots candidats. |
| wordCandidateListAutoCommitWord | Active la fonction AutoCommit pour la liste des mots proposés. |
| fullScreen | Utiliser le mode plein écran |
| style=<nom> | Définit le style |
| locale=<nom> | Définir les paramètres régionaux |
Variables d'environnement
Le module définit plusieurs variables d'environnement, répertoriées ci-dessous :
| Variable | Objectif |
|---|---|
| QT_VIRTUALKEYBOARD_HUNSPELL_DATA_PATH | Remplace l'emplacement des fichiers de données Hunspell. L'emplacement par défaut dépend de la valeur de ` Voir Intégration de Hunspell pour plus d'informations. |
| QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY | Remplace l'emplacement du dictionnaire Pinyin. Par défaut, le dictionnaire est intégré aux ressources du plugin. Pour désactiver l'intégration des ressources, ajoutez -vkb-no-bundle-pinyin à la ligne de commande de configuration de Qt. Dans ce cas, l'emplacement par défaut dépend de la valeur de |
| QT_VIRTUALKEYBOARD_CANGJIE_DICTIONARY | Remplace l'emplacement du dictionnaire Cangjie. Par défaut, le dictionnaire est intégré aux ressources du plugin. Pour désactiver l'intégration des ressources, ajoutez -vkb-no-bundle-tcime à la ligne de commande de configuration de Qt. Dans ce cas, l'emplacement par défaut dépend de la valeur de |
| QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY | Remplace l'emplacement du dictionnaire Zhuyin. Par défaut, le dictionnaire est intégré aux ressources du plugin. Pour désactiver l'intégration des ressources, ajoutez -vkb-no-bundle-tcime à la ligne de commande de configuration de Qt. Dans ce cas, l'emplacement par défaut dépend de la valeur de |
| QT_VIRTUALKEYBOARD_PHRASE_DICTIONARY | Remplace l’emplacement du dictionnaire de phrases. Par défaut, le dictionnaire est intégré aux ressources du plugin. Pour désactiver le regroupement des ressources, ajoutez -vkb-no-bundle-tcime à la ligne de commande de configuration de Qt. Dans ce cas, l'emplacement par défaut dépend de la valeur de |
| QT_VIRTUALKEYBOARD_CERENCE_HWR_DB_PATH | Spécifie l'emplacement de la base de données d'écriture manuscrite Cerence Handwriting. Les emplacements de recherche par défaut pour la base de données d’écriture manuscrite Cerence Handwriting sont les suivants :
La variable d'environnement peut contenir plusieurs chemins d'accès. Sous Windows, ceux-ci sont séparés par des points-virgules ; sur les autres systèmes d'exploitation, ils sont séparés par des deux-points. |
| QT_VIRTUALKEYBOARD_XT9_LDB_PATH | Spécifie l'emplacement des bases de données XT9. Les emplacements de recherche par défaut pour les fichiers LDB sont les suivants :
Des chemins de recherche supplémentaires peuvent être spécifiés en définissant cette variable d'environnement. Les chemins multiples sont séparés par un point-virgule sous Windows et par deux points sur les autres systèmes d'exploitation. Les fichiers LDB sont partagés entre les plugins XT9 et Cerence Handwriting ; cette variable d'environnement affecte donc les deux plugins. |
| QT_VIRTUALKEYBOARD_STYLE | Spécifie l'emplacement du style à utiliser avec le clavier virtuel. Ceci peut également être spécifié dans QML en définissant ` VirtualKeyboardSettings::styleName`, ou lors de la compilation à l'aide des options de configuration. |
| QT_VIRTUALKEYBOARD_LAYOUT_PATH | Spécifie l'emplacement des dispositions à utiliser avec le clavier virtuel. |
| QT_VIRTUALKEYBOARD_DESKTOP_DISABLE | Désactive la méthode d’intégration au bureau. |
| QT_VIRTUALKEYBOARD_FORCE_EVENTS_WITHOUT_FOCUS | Active la fonction ` Qt Virtual Keyboard ` pour envoyer des événements de touche et utiliser la touche Maj sans qu'aucune saisie de texte ne soit active. Cette variable doit être explicitement définie dans l'environnement d'exécution d'une application souhaitant bénéficier de cette fonctionnalité. L'utilisation de la fonction ` qputenv()` dans l'application elle-même n'est pas suffisante. |
© 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.