En esta página

ScrollView QML Type

Vista desplazable. Más...

Import Statement: import QtQuick.Controls
Inherits:

Pane

Propiedades

Descripción detallada

ScrollView proporciona desplazamiento para contenido definido por el usuario. Puede utilizarse para reemplazar un Flickable, o para decorar uno existente.

Vista de desplazamiento con contenido desplazable

El primer ejemplo muestra el uso más sencillo de ScrollView.

ScrollView {
    width: 200
    height: 200

    Label {
        text: "ABC"
        font.pixelSize: 224
    }
}

El segundo ejemplo ilustra el uso de un Flickable existente, es decir, un ListView.

ScrollView {
    width: 200
    height: 200

    ListView {
        model: 20
        delegate: ItemDelegate {
            text: "Item " + index

            required property int index
        }
    }
}

Nota: A partir de Qt-6.0, ScrollView recorta automáticamente su contenido si no se usa un Flickable como hijo. Si no desea esto, puede establecer su propio Flickable como hijo, y controlar la propiedad clip en el Flickable explícitamente.

Tamaño

Al igual que con Flickable, hay varias cosas a tener en cuenta cuando se utiliza ScrollView:

  • Si sólo se utiliza un único elemento dentro de un ScrollView, el tamaño del contenido se calcula automáticamente basándose en el tamaño implícito de su elemento contenido. Sin embargo, si se utiliza más de un elemento (o no se proporciona un tamaño implícito), las propiedades contentWidth y contentHeight deben ajustarse al tamaño combinado de sus elementos contenidos.
  • Si el tamaño del contenido es menor o igual que el tamaño del ScrollView, éste no será desplazable.
  • Si desea que el ScrollView sólo se desplace verticalmente, puede vincular contentWidth a availableWidth (y viceversa para contentHeight). Esto permitirá que el contenido llene todo el espacio disponible horizontalmente dentro del ScrollView, teniendo en cuenta cualquier relleno o barras de desplazamiento.

Barras de desplazamiento

Las barras de desplazamiento horizontal y vertical pueden ser accedidas y personalizadas utilizando las propiedades adjuntas ScrollBar.horizontal y ScrollBar.vertical. El siguiente ejemplo ajusta las políticas de las barras de desplazamiento para que la barra de desplazamiento horizontal esté siempre desactivada, y la barra de desplazamiento vertical esté siempre activada.

ScrollView {
    // ...
    ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
    ScrollBar.vertical.policy: ScrollBar.AlwaysOn
}

Interacción Táctil vs. Ratón

Cuando es táctil, ScrollView activa el desplazamiento y hace que las barras de desplazamiento no sean interactivas.

Cuando se interactúa con un dispositivo de ratón, el desplazamiento se desactiva y las barras de desplazamiento son interactivas.

Las barras de desplazamiento pueden hacerse interactivas al tacto, o no interactivas cuando se interactúa con un dispositivo de ratón, estableciendo la propiedad interactive explícitamente a true o false, respectivamente.

ScrollView {
    // ...
    ScrollBar.horizontal.interactive: true
    ScrollBar.vertical.interactive: true
}

Variación del tamaño de los delegados

Los tamaños variables de los delegados pueden hacer que ScrollBar "salte" a medida que se cargan nuevos delegados en la vista. Por esta razón, se recomienda tener delegados de igual tamaño. Para más información, consulte Variable Delegate Size and Section Labels.

Ver también ScrollBar, ScrollIndicator, Personalización de ScrollView, Controles Contenedores y Gestión del Enfoque en Qt Quick Controls.

Documentación de Propiedades

contentChildren : list<Item>

Esta propiedad contiene la lista de hijos del contenido.

La lista contiene todos los elementos que han sido declarados en QML como hijos de la vista.

Nota: A diferencia de contentData, contentChildren no incluye objetos QML no visuales.

Véase también Item::children y contentData.

contentData : list<QtObject> [default]

Esta propiedad contiene la lista de datos de contenido.

La lista contiene todos los objetos que han sido declarados en QML como hijos de la vista.

Nota: A diferencia de contentChildren, contentData sí incluye objetos QML no visuales.

Véase también Item::data y contentChildren.

effectiveScrollBarHeight : real [since 6.6]

Esta propiedad contiene la altura efectiva de la barra de desplazamiento horizontal. Cuando la barra de desplazamiento está visible, esta propiedad es la altura actual de la barra de desplazamiento. Cuando la barra de desplazamiento no es visible o su política está establecida en QQuickScrollBar::AlwaysOff, esta propiedad es 0.

Esta propiedad se introdujo en Qt 6.6.

Véase también ScrollBar::policy.

effectiveScrollBarWidth : real [since 6.6]

Esta propiedad contiene el ancho efectivo de la barra de desplazamiento vertical. Cuando la barra de desplazamiento está visible, esta propiedad es la anchura actual de la barra de desplazamiento. Cuando la barra de desplazamiento no está visible o su política está establecida en QQuickScrollBar::AlwaysOff, esta propiedad es 0.

Esta propiedad se introdujo en Qt 6.6.

Véase también ScrollBar::policy.

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