Auf dieser Seite

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 anhand der verfügbaren Breite berechnet; das heißt, die Tastatur behält das durch den aktuellen Stil festgelegte Seitenverhältnis bei. Daher sollte die Anwendung nur die Koordinaten „ width “ und „ y “ des InputPanels festlegen, nicht jedoch „ height “.

Wie bei allen anderen vom Modul bereitgestellten QML-Typen muss die Umgebungsvariable „ QT_IM_MODULE “ vor der Verwendung von „InputPanel“ auf „ qtvirtualkeyboard “ gesetzt werden. Weitere Informationen finden Sie unter „Laden des Plugins“.

Hinweis: In Ihrer Anwendungdarf nur eine „InputPanel“-Instanz vorhanden sein. Das Panel wird nicht durch modale Dialoge blockiert, kann jedoch von Elementen mit einem höheren „ z “-Wert verdeckt werden.

Dokumentation zu den Eigenschaften

active : bool [since QtQuick.VirtualKeyboard 2.0]

Diese Eigenschaft gibt den aktiven Status des Eingabefelds wieder. Die Tastatur sollte für den Benutzer sichtbar gemacht werden, wenn diese Eigenschaft den Wert „ true “ hat.

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 auf „ true “ gesetzt ist, zeigt die virtuelle Tastatur nicht das integrierte Sprachauswahl-Popup an, sondern sendet stattdessen das Signal „ externalLanguageSwitch “. Die Anwendung kann dieses Signal verarbeiten und stattdessen einen benutzerdefinierten 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 ausgelöst, wenn „ externalLanguageSwitchEnabled “ auf „ true “ gesetzt ist und der Benutzer die Sprachumschalttaste drückt.

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

Der Parameter „ localeList “ enthält eine Liste mit Namen von Sprachumgebungen zur Auswahl. Um weitere Informationen zu einer bestimmten Sprache zu erhalten, verwenden Sie die Funktion „ Qt.locale()“. „ currentIndex “ ist der Index der aktuellen Sprachumgebung in „ localeList “. Dieses Element sollte in der Benutzeroberfläche als aktuelles Element hervorgehoben werden.

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

Nachfolgend finden Sie ein Beispiel, das die Implementierung eines benutzerdefinierten Sprachdialogs veranschaulicht:

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 wie folgt deklariert werden:

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

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

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

Der benutzerdefinierte Dialog wird nun angezeigt, wenn die Taste zum Wechseln der Sprache gedrückt wird.

Hinweis: Der entsprechende Handler ist ` onExternalLanguageSwitch`.

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

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