InputPanel QML Type
Stellt die Benutzeroberfläche der virtuellen Tastatur bereit. Mehr...
| Import Statement: | import QtQuick.VirtualKeyboard |
| Inherits: |
Eigenschaften
- active : bool
(since QtQuick.VirtualKeyboard 2.0) - externalLanguageSwitchEnabled : bool
(since QtQuick.VirtualKeyboard 2.4)
Signale
- externalLanguageSwitch(var localeList, int currentIndex)
(since QtQuick.VirtualKeyboard 2.4)
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.