InputPanel QML Type
Fournit l'interface utilisateur du clavier virtuel. Plus d'informations...
| 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 automatiquement calculée à partir de la largeur disponible, c'est-à-dire que 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 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 l'InputPanel. Pour plus d'informations, voir Chargement du plugin.
Note : Vous ne pouvez avoir qu'une seule instance d'InputPanel dans votre application. Le panneau ne sera pas bloqué par les boîtes de dialogue modales, mais il peut être masqué par des éléments dont la valeur est supérieure à z.
Documentation sur les propriétés
active : bool [since QtQuick.VirtualKeyboard 2.0]
Cette propriété reflète l'état actif du panneau de saisie. Le clavier doit être rendu visible à l'utilisateur lorsque cette propriété est 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 de changement de langue externe. Lorsque cette propriété vaut true, le clavier virtuel n'affichera pas la fenêtre contextuelle de langue intégrée, mais émettra le signal externalLanguageSwitch à la place. L'application peut gérer ce signal et afficher une boîte de dialogue de sélection de langue personnalisée à la place.
Cette propriété a été introduite dans QtQuick.VirtualKeyboard 2.4.
Documentation du signal
[since QtQuick.VirtualKeyboard 2.4] externalLanguageSwitch(var localeList, int currentIndex)
Ce signal est émis lorsque externalLanguageSwitchEnabled est true et que l'utilisateur appuie sur la touche de changement de langue.
Il sert de crochet pour afficher une boîte de dialogue de langue personnalisée au lieu de la fenêtre contextuelle de langue 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(). Le paramètre currentIndex est l'index de la langue actuelle dans le répertoire localeList. Cet élément doit être mis en évidence en tant qu'élément actuel dans l'interface utilisateur.
Pour sélectionner une nouvelle langue, utilisez la propriété VirtualKeyboardSettings.locale.
L'exemple ci-dessous illustre la mise en œuvre 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 :
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.