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)
Detaillierte 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 Sie wählen können. 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.