Sur cette page

InputPanel QML Type

Fournit l'interface utilisateur du clavier virtuel. Plus d'informations...

Import Statement: import QtQuick.VirtualKeyboard
Inherits:

Item

Propriétés

Signaux

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.