Tumbler QML Type
Rueda giratoria de elementos que pueden seleccionarse. Más...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
Propiedades
- count : int
- currentIndex : int
- currentItem : Item
- delegate : Component
- flickDeceleration : int
- model : variant
- moving : bool
(since QtQuick.Controls 2.2 (Qt 5.9)) - visibleItemCount : int
- wrap : bool
(since QtQuick.Controls 2.1 (Qt 5.8))
Propiedades anexas
- displacement : real
- tumbler : Tumbler
Métodos
- void positionViewAtIndex(int index, PositionMode mode)
(since QtQuick.Controls 2.5 (Qt 5.12))
Descripción detallada
Tumbler { model: 5 // ... }
Tumbler permite al usuario seleccionar una opción de una "rueda" giratoria de elementos. Es útil cuando hay demasiadas opciones para utilizar, por ejemplo, un RadioButton, y muy pocas opciones para requerir el uso de un SpinBox editable. Es conveniente porque no requiere el uso del teclado y se envuelve en cada extremo cuando hay un gran número de elementos.
La API es similar a la de vistas como ListView y PathView; se pueden establecer model y delegate, y las propiedades count y currentItem proporcionan acceso de sólo lectura a información sobre la vista. Para posicionar la vista en un índice determinado, utilice positionViewAtIndex().
Sin embargo, a diferencia de vistas como PathView y ListView, siempre hay un elemento actual (cuando el modelo no está vacío). Esto significa que cuando count es igual a 0, currentIndex será -1. En todos los demás casos, será mayor o igual que 0.
Por defecto, Tumbler wraps cuando alcanza la parte superior e inferior, siempre que haya más elementos en el modelo que elementos visibles; es decir, cuando count es mayor que visibleItemCount:
import QtQuick import QtQuick.Window import QtQuick.Controls Rectangle { width: frame.implicitWidth + 10 height: frame.implicitHeight + 10 FontMetrics { id: fontMetrics } Component { id: delegateComponent Label { text: formatText(Tumbler.tumbler.count, modelData) opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2) horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter font.pixelSize: fontMetrics.font.pixelSize * 1.25 function formatText(count, modelData) { var data = count === 12 ? modelData + 1 : modelData; return data.toString().length < 2 ? "0" + data : data; } } } Frame { id: frame padding: 0 anchors.centerIn: parent Row { id: row Tumbler { id: hoursTumbler model: 12 delegate: delegateComponent } Tumbler { id: minutesTumbler model: 60 delegate: delegateComponent } Tumbler { id: amPmTumbler model: ["AM", "PM"] delegate: delegateComponent } } } }
Véase también Personalización de Tumbler y Controles de entrada.
Documentación de propiedades
count : int [read-only]
Esta propiedad contiene el número de elementos del modelo.
currentIndex : int
Esta propiedad contiene el índice del elemento actual.
El valor de esta propiedad es -1 cuando count es igual a 0. En todos los demás casos, será mayor o igual a 0.
Véase también currentItem y positionViewAtIndex().
currentItem : Item [read-only]
Esta propiedad contiene el elemento en el índice actual.
Véase también currentIndex y positionViewAtIndex().
delegate : Component
Esta propiedad contiene el delegado utilizado para mostrar cada elemento.
Tumbler no se apropia del delegado.
flickDeceleration : int
Esta propiedad indica la velocidad a la que se ralentizará un gesto: cuanto mayor sea el número, más rápido se ralentizará cuando el usuario deje de hacer gestos táctiles. Por ejemplo, 0.0001 es casi "sin fricción", y 10000 se siente bastante "pegajoso".
Cuando wrap es verdadero (por defecto), la flickDeceleration por defecto es 100. En caso contrario, depende de la plataforma. Para anular este comportamiento, establece explícitamente el valor de esta propiedad. Para volver al comportamiento por defecto, establezca esta propiedad a undefined. No se permiten valores iguales o inferiores a cero.
model : variant
Esta propiedad contiene el modelo que proporciona los datos para esta secadora.
moving : bool [since QtQuick.Controls 2.2 (Qt 5.9)]
Esta propiedad describe si el vaso se está moviendo actualmente, debido a que el usuario lo está arrastrando o moviendo.
Esta propiedad se introdujo en QtQuick.Controls 2.2 (Qt 5.9).
visibleItemCount : int
Esta propiedad contiene el número de elementos visibles en la secadora. Debe ser un número impar, ya que el elemento actual siempre está centrado verticalmente.
wrap : bool [since QtQuick.Controls 2.1 (Qt 5.8)]
Esta propiedad determina si la secadora se envuelve o no cuando llega a la parte superior o inferior.
El valor por defecto es false cuando count es menor que visibleItemCount, ya que es más sencillo interactuar con un Tumbler que no envuelve cuando hay pocos elementos. Para anular este comportamiento, establezca explícitamente el valor de esta propiedad. Para volver al comportamiento por defecto, establezca esta propiedad a undefined.
Esta propiedad se introdujo en QtQuick.Controls 2.1 (Qt 5.8).
Documentación de la Propiedad Attached
Tumbler.displacement : real [read-only]
Esta propiedad adjunta contiene un valor de -visibleItemCount / 2 a visibleItemCount / 2, que representa lo lejos que está este elemento de ser el elemento actual, siendo 0 completamente actual.
Por ejemplo, el elemento de abajo será 40% opaco cuando no sea el elemento actual, y pasará a 100% de opacidad cuando se convierta en el elemento actual:
delegate: Text {
text: modelData
opacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6
}Tumbler.tumbler : Tumbler [read-only]
Esta propiedad adjunta contiene el vaso. La propiedad puede adjuntarse a un delegado de vaso. El valor es null si el elemento no es un delegado de vaso.
Documentación del método
[since QtQuick.Controls 2.5 (Qt 5.12)] void positionViewAtIndex(int index, PositionMode mode)
Posiciona la vista de modo que index se encuentre en la posición especificada por mode.
Por ejemplo:
positionViewAtIndex(10, Tumbler.Center)
Si wrap es verdadero (el valor por defecto), los modos disponibles para PathView's positionViewAtIndex() función están disponibles, de lo contrario los modos disponibles para ListView's positionViewAtIndex() función están disponibles.
Nota: Existe una limitación conocida por la que el uso de Tumbler.Beginning cuando wrap es true provocará que el elemento incorrecto se sitúe en la parte superior de la vista. Como solución alternativa, pase index - 1.
Este método se introdujo en QtQuick.Controls 2.5 (Qt 5.12).
Véase también currentIndex.
© 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.