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