Clavier virtuel dans Qt Quick
Cet exemple montre comment utiliser le clavier virtuel dans une application Qt Quick.

L'exemple comporte deux implémentations : l'une pour les plates-formes de bureau et l'autre pour les plates-formes embarquées. La première version permet de saisir du texte dans plusieurs champs de texte à l'aide du clavier virtuel, tandis que la seconde utilise la même interface utilisateur, mais avec un clavier virtuel personnalisé InputPanel. Les extraits suivants montrent comment configurer le projet pour qu'il choisisse l'implémentation appropriée en fonction des options CONFIG :
- Dans qmake (
basic.pro) :!qtConfig(vkb-desktop) { DEFINES += MAIN_QML=\\\"basic-b2qt.qml\\\" } else { DEFINES += MAIN_QML=\\\"Basic.qml\\\" } - Dans CMake (
CMakeLists.txt) :if(NOT QT_FEATURE_vkb_desktop) target_compile_definitions(basic PUBLIC MAIN_QML="basic-b2qt.qml" ) endif() ... if(QT_FEATURE_vkb_desktop) target_compile_definitions(basic PUBLIC MAIN_QML="Basic.qml" ) endif()
L'exemple active le clavier virtuel en définissant la variable d'environnement QT_IM_MODULE avant de charger le fichier .qml:
#include <QQuickView> #include <QGuiApplication> #include <QQmlEngine> int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QGuiApplication app(argc, argv); QQuickView view(QString("qrc:/%2").arg(MAIN_QML)); if (view.status() == QQuickView::Error) return -1; view.setResizeMode(QQuickView::SizeRootObjectToView); view.show(); return app.exec(); }
En outre, il utilise les éléments personnalisés TextField et TextArea pour configurer le comportement de la touche [ENTER] à l'aide de la propriété attachée EnterKeyAction.
import QtQuick import QtQuick.Controls import QtQuick.VirtualKeyboard import "content" Rectangle { ... TextField { width: parent.width placeholderText: "One line field" enterKeyAction: EnterKeyAction.Next onAccepted: passwordField.focus = true } ... TextArea { id: textArea width: parent.width placeholderText: "Multiple line field" height: Math.max(206, implicitHeight) } }
Les contrôles TextField et TextArea étendent les types Qt Quick Controls 2 respectifs avec les propriétés enterKeyEnabled et enterKeyAction. Les instances TextField et TextArea de l'extrait peuvent définir ces propriétés pour modifier le comportement par défaut.
Exécution de l'exemple
Pour exécuter l'exemple à partir de Qt Creatorouvrez le mode Welcome et sélectionnez l'exemple à partir de Examples. Pour plus d'informations, voir Qt Creator: Tutoriel : Construire et exécuter.
© 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.