InputPanel QML Type

Stellt die Benutzeroberfläche der virtuellen Tastatur bereit. Mehr...

Import Statement: import QtQuick.VirtualKeyboard
Inherits:

Item

Eigenschaften

Signale

Ausführliche Beschreibung

Die Größe der Tastatur wird automatisch aus der verfügbaren Breite berechnet, d. h. die Tastatur behält das durch den aktuellen Stil vorgegebene Seitenverhältnis bei. Daher sollte die Anwendung nur die Koordinaten width und y des InputPanels festlegen, nicht aber height.

Wie bei allen anderen QML-Typen, die vom Modul bereitgestellt werden, muss die Umgebungsvariable QT_IM_MODULE auf qtvirtualkeyboard gesetzt werden, bevor InputPanel verwendet werden kann. Weitere Informationen finden Sie unter Laden des Plugins.

Hinweis: Sie können nur eine InputPanel-Instanz in Ihrer Anwendung haben. Das Panel wird nicht durch modale Dialoge blockiert, aber es kann durch Elemente mit einem höheren z Wert verdeckt werden.

Eigenschaft Dokumentation

active : bool [since QtQuick.VirtualKeyboard 2.0]

Diese Eigenschaft spiegelt den aktiven Status des Eingabefeldes wider. Die Tastatur sollte für den Benutzer sichtbar gemacht werden, wenn diese Eigenschaft true ist.

Diese Eigenschaft wurde in QtQuick.VirtualKeyboard 2.0 eingeführt.


externalLanguageSwitchEnabled : bool [since QtQuick.VirtualKeyboard 2.4]

Diese Eigenschaft aktiviert den externen Sprachumschaltmechanismus. Wenn diese Eigenschaft true ist, zeigt die virtuelle Tastatur nicht das eingebaute Sprach-Popup an, sondern gibt stattdessen das Signal externalLanguageSwitch aus. Die Anwendung kann dieses Signal verarbeiten und stattdessen einen eigenen Sprachauswahldialog anzeigen.

Diese Eigenschaft wurde in QtQuick.VirtualKeyboard 2.4 eingeführt.


Signal-Dokumentation

[since QtQuick.VirtualKeyboard 2.4] externalLanguageSwitch(var localeList, int currentIndex)

Dieses Signal wird ausgegeben, wenn externalLanguageSwitchEnabled true ist und die Sprachumschalttaste vom Benutzer gedrückt wird.

Es dient als Hook, um einen benutzerdefinierten Sprachdialog anstelle des eingebauten Sprach-Popups in der virtuellen Tastatur anzuzeigen.

Der Parameter localeList enthält eine Liste von Sprachumgebungsnamen, aus der man wählen kann. Um weitere Informationen über eine bestimmte Sprache zu erhalten, verwenden Sie die Funktion Qt.locale(). currentIndex ist der Index des aktuellen Gebietsschemas in localeList. Dieses Element sollte als aktuelles Element in der Benutzeroberfläche hervorgehoben werden.

Um eine neue Sprache auszuwählen, verwenden Sie die Eigenschaft VirtualKeyboardSettings.locale.

Im folgenden Beispiel wird die Implementierung eines benutzerdefinierten Sprachdialogs gezeigt:

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"
                }
            }
        }
    }
}

Der Dialog würde dann deklariert werden:

LanguageDialog {
    id: languageDialog
    width: 400
    height: 400
}

Fügen Sie im InputPanel der Anwendung den folgenden Code ein:

InputPanel {
    id: inputPanel
    externalLanguageSwitchEnabled: true
    onExternalLanguageSwitch: languageDialog.show(localeList, currentIndex)
    // ...
}

Das benutzerdefinierte Dialogfeld wird nun angezeigt, wenn die Sprachumschalttaste gedrückt wird.

Hinweis: Der entsprechende Handler ist onExternalLanguageSwitch.

Dieses Signal wurde in QtQuick.VirtualKeyboard 2.4 eingeführt.


© 2025 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.