InputPanel QML Type
Fournit l'interface utilisateur du clavier virtuel. En savoir plus...
| Import Statement: | import QtQuick.VirtualKeyboard |
| Inherits: |
Propriétés
- active : bool
(since QtQuick.VirtualKeyboard 2.0) - externalLanguageSwitchEnabled : bool
(since QtQuick.VirtualKeyboard 2.4)
Signaux
- externalLanguageSwitch(var localeList, int currentIndex)
(since QtQuick.VirtualKeyboard 2.4)
Description détaillée
La taille du clavier est calculée automatiquement à partir de la largeur disponible ; en d'autres termes, le clavier conserve le rapport d'aspect spécifié par le style actuel. Par conséquent, l'application ne doit définir que les coordonnées width et y de l'InputPanel, et non la propriété height.
Comme pour tous les autres types QML fournis par le module, la variable d’environnement QT_IM_MODULE doit être définie sur qtvirtualkeyboard avant d’utiliser InputPanel. Pour plus d’informations, consultez la section Chargement du plugin.
Remarque : vous ne pouvez avoir qu’une seule instance d’InputPanel dans votre application. Le panneau ne sera pas masqué par les boîtes de dialogue modales, mais il peut être recouvert par des éléments dont la valeur z est supérieure.
Documentation sur les propriétés
active : bool [since QtQuick.VirtualKeyboard 2.0]
Cette propriété indique si le panneau de saisie est actif. Le clavier doit être affiché à l'utilisateur lorsque cette propriété a la valeur « true ».
Cette propriété a été introduite dans QtQuick.VirtualKeyboard 2.0.
externalLanguageSwitchEnabled : bool [since QtQuick.VirtualKeyboard 2.4]
Cette propriété active le mécanisme externe de changement de langue. Lorsque cette propriété prend la valeur « true », le clavier virtuel n'affiche pas la liste déroulante de langues intégrée, mais émet à la place le signal « externalLanguageSwitch ». L'application peut alors gérer ce signal et afficher à la place une boîte de dialogue personnalisée de sélection de langue.
Cette propriété a été introduite dans QtQuick.VirtualKeyboard 2.4.
Documentation sur les signaux
[since QtQuick.VirtualKeyboard 2.4] externalLanguageSwitch(var localeList, int currentIndex)
Ce signal est émis lorsque la propriété « externalLanguageSwitchEnabled » est définie sur « true » et que l'utilisateur appuie sur la touche de changement de langue.
Il sert de point d'accrochage pour afficher une boîte de dialogue de langue personnalisée à la place de la liste déroulante de langues intégrée au clavier virtuel.
Le paramètre localeList contient une liste de noms de paramètres régionaux parmi lesquels choisir. Pour obtenir plus d’informations sur une langue particulière, utilisez la fonction Qt.locale(). La variable currentIndex correspond à l’index du paramètre régional actuel dans la liste localeList. Cet élément doit être mis en surbrillance en tant qu’élément actif dans l’interface utilisateur.
Pour sélectionner une nouvelle langue, utilisez la propriété VirtualKeyboardSettings.locale.
Voici un exemple illustrant l’implémentation d’une boîte de dialogue de langue personnalisée :
Dialog {
id: languageDialog
title: "Select Input Language"
modality: Qt.ApplicationModal
function show(localeList, currentIndex) {
languageListModel.clear()
for (var i = 0; i < localeList.length; i++) {
languageListModel.append({localeName: localeList[i], displayName: Qt.locale(localeList[i]).nativeLanguageName})
}
languageListView.currentIndex = currentIndex
languageListView.positionViewAtIndex(currentIndex, ListView.Center)
languageDialog.visible = true
}
contentItem: ListView {
id: languageListView
model: ListModel {
id: languageListModel
function selectItem(index) {
VirtualKeyboardSettings.locale = languageListModel.get(index).localeName
languageDialog.visible = false
}
}
delegate: Item {
id: languageListItem
width: languageNameTextMetrics.width * 17
height: languageNameTextMetrics.height + languageListLabel.anchors.topMargin + languageListLabel.anchors.bottomMargin
Text {
id: languageListLabel
anchors.left: parent.left
anchors.top: parent.top
anchors.leftMargin: languageNameTextMetrics.height / 2
anchors.rightMargin: anchors.leftMargin
anchors.topMargin: languageNameTextMetrics.height / 3
anchors.bottomMargin: anchors.topMargin
text: languageNameFormatter.elidedText
color: "#5CAA15"
font {
weight: Font.Normal
pixelSize: 28
}
}
TextMetrics {
id: languageNameTextMetrics
font {
weight: Font.Normal
pixelSize: 28
}
text: "X"
}
TextMetrics {
id: languageNameFormatter
font {
weight: Font.Normal
pixelSize: 28
}
elide: Text.ElideRight
elideWidth: languageListItem.width - languageListLabel.anchors.leftMargin - languageListLabel.anchors.rightMargin
text: displayName
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onClicked: {
if (index === -1)
return
parent.ListView.view.currentIndex = index
parent.ListView.view.model.selectItem(index)
}
}
states: State {
name: "current"
when: languageListItem.ListView.isCurrentItem
PropertyChanges {
target: languageListLabel
color: "black"
}
}
}
}
}La boîte de dialogue serait alors déclarée comme suit :
LanguageDialog {
id: languageDialog
width: 400
height: 400
}Dans le fichier ` InputPanel` de l’application, ajoutez le code suivant :
InputPanel {
id: inputPanel
externalLanguageSwitchEnabled: true
onExternalLanguageSwitch: languageDialog.show(localeList, currentIndex)
// ...
}La boîte de dialogue personnalisée s'affichera désormais lorsque la touche de changement de langue sera enfoncée.
Remarque : le gestionnaire correspondant est ` onExternalLanguageSwitch`.
Ce signal a été introduit dans QtQuick.VirtualKeyboard 2.4.
© 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.