InputPanel QML Type
Proporciona la interfaz de usuario del teclado virtual. Más...
| Import Statement: | import QtQuick.VirtualKeyboard |
| Inherits: |
Propiedades
- active : bool
(since QtQuick.VirtualKeyboard 2.0) - externalLanguageSwitchEnabled : bool
(since QtQuick.VirtualKeyboard 2.4)
Señales
- externalLanguageSwitch(var localeList, int currentIndex)
(since QtQuick.VirtualKeyboard 2.4)
Descripción detallada
El tamaño del teclado se calcula automáticamente a partir de la anchura disponible; es decir, el teclado mantiene la relación de aspecto especificada por el estilo actual. Por lo tanto, la aplicación sólo debe establecer las coordenadas width y y del InputPanel, y no height.
Al igual que con el resto de tipos QML proporcionados por el módulo, la variable de entorno QT_IM_MODULE debe establecerse en qtvirtualkeyboard antes de utilizar InputPanel. Para más información, véase Cargar el Plugin.
Nota: Sólo puede tener una instancia de InputPanel en su aplicación. El panel no será bloqueado por diálogos modales, pero puede ser oscurecido por elementos con un valor superior a z.
Documentación de Propiedades
active : bool [since QtQuick.VirtualKeyboard 2.0]
Esta propiedad refleja el estado activo del panel de entrada. El teclado debe hacerse visible al usuario cuando esta propiedad es true.
Esta propiedad fue introducida en QtQuick.VirtualKeyboard 2.0.
externalLanguageSwitchEnabled : bool [since QtQuick.VirtualKeyboard 2.4]
Esta propiedad activa el mecanismo de cambio de idioma externo. Cuando esta propiedad es true, el teclado virtual no mostrará la ventana emergente de idioma incorporada, sino que emitirá la señal externalLanguageSwitch en su lugar. La aplicación puede manejar esta señal y mostrar un diálogo de selección de idioma personalizado en su lugar.
Esta propiedad se introdujo en QtQuick.VirtualKeyboard 2.4.
Documentación de la señal
[since QtQuick.VirtualKeyboard 2.4] externalLanguageSwitch(var localeList, int currentIndex)
Esta señal se emite cuando externalLanguageSwitchEnabled es true y el usuario pulsa la tecla de cambio de idioma.
Sirve como gancho para mostrar un diálogo de idioma personalizado en lugar de la ventana emergente de idioma incorporada en el teclado virtual.
El parámetro localeList contiene una lista de nombres de configuración regional entre los que elegir. Para obtener más información sobre un idioma concreto, utilice la función Qt.locale(). El currentIndex es el índice de la configuración regional actual en el localeList. Este elemento debe resaltarse como el elemento actual en la interfaz de usuario.
Para seleccionar un nuevo idioma, utilice la propiedad VirtualKeyboardSettings.locale.
A continuación se muestra un ejemplo que demuestra la implementación de un diálogo de idioma personalizado:
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"
}
}
}
}
}El diálogo se declararía entonces:
LanguageDialog {
id: languageDialog
width: 400
height: 400
}En la aplicación InputPanel, añada el siguiente código:
InputPanel {
id: inputPanel
externalLanguageSwitchEnabled: true
onExternalLanguageSwitch: languageDialog.show(localeList, currentIndex)
// ...
}El diálogo personalizado se mostrará ahora cuando se pulse la tecla de cambio de idioma.
Nota: El manejador correspondiente es onExternalLanguageSwitch.
Esta señal fue introducida en QtQuick.VirtualKeyboard 2.4.
© 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.