En esta página

QAbstractScrollArea Class

El widget QAbstractScrollArea proporciona un área de desplazamiento con barras de desplazamiento bajo demanda. Más...

Cabecera: #include <QAbstractScrollArea>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QFrame
Heredado de:

QAbstractItemView, QGraphicsView, QMdiArea, QPlainTextEdit, QScrollArea, y QTextEdit

Tipos públicos

enum SizeAdjustPolicy { AdjustIgnored, AdjustToContents, AdjustToContentsOnFirstShow }

Propiedades

Funciones públicas

QAbstractScrollArea(QWidget *parent = nullptr)
virtual ~QAbstractScrollArea()
void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
QWidget *cornerWidget() const
QScrollBar *horizontalScrollBar() const
Qt::ScrollBarPolicy horizontalScrollBarPolicy() const
QSize maximumViewportSize() const
QWidgetList scrollBarWidgets(Qt::Alignment alignment)
void setCornerWidget(QWidget *widget)
void setHorizontalScrollBar(QScrollBar *scrollBar)
void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy)
void setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy)
void setVerticalScrollBar(QScrollBar *scrollBar)
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)
void setViewport(QWidget *widget)
virtual void setupViewport(QWidget *viewport)
QAbstractScrollArea::SizeAdjustPolicy sizeAdjustPolicy() const
QScrollBar *verticalScrollBar() const
Qt::ScrollBarPolicy verticalScrollBarPolicy() const
QWidget *viewport() const

Funciones públicas reimplementadas

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Funciones protegidas

virtual void scrollContentsBy(int dx, int dy)
void setViewportMargins(const QMargins &margins)
void setViewportMargins(int left, int top, int right, int bottom)
virtual bool viewportEvent(QEvent *event)
QMargins viewportMargins() const
virtual QSize viewportSizeHint() const

Funciones protegidas reimplementadas

virtual void contextMenuEvent(QContextMenuEvent *e) override
virtual void dragEnterEvent(QDragEnterEvent *event) override
virtual void dragLeaveEvent(QDragLeaveEvent *event) override
virtual void dragMoveEvent(QDragMoveEvent *event) override
virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *event) override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void mouseDoubleClickEvent(QMouseEvent *e) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void wheelEvent(QWheelEvent *e) override

Descripción Detallada

QAbstractScrollArea es una abstracción de bajo nivel de un área de desplazamiento. El área provee un widget central llamado viewport, en el cual el contenido del área se desplaza (es decir, las partes visibles del contenido se muestran en el viewport).

Junto a la ventana hay una barra de desplazamiento vertical y, debajo, una barra de desplazamiento horizontal. Cuando todo el contenido del área cabe en la ventana gráfica, cada barra de desplazamiento puede estar visible u oculta dependiendo de la barra de desplazamiento Qt::ScrollBarPolicy. Cuando una barra de desplazamiento está oculta, la ventana gráfica se expande para cubrir todo el espacio disponible. Cuando una barra de desplazamiento vuelve a estar visible, la ventana gráfica se contrae para dejar espacio a la barra de desplazamiento.

Es posible reservar un área de margen alrededor de la ventana gráfica, véase setViewportMargins(). Esta función se utiliza sobre todo para colocar un widget QHeaderView encima o al lado del área de desplazamiento. Las subclases de QAbstractScrollArea deben implementar márgenes.

Al heredar QAbstractScrollArea, debes hacer lo siguiente:

  • Controlar las barras de desplazamiento estableciendo su rango, valor, paso de página y seguir sus movimientos.
  • Dibujar el contenido del area en el viewport de acuerdo a los valores de las barras de desplazamiento.
  • Manejar los eventos recibidos por la ventana gráfica en viewportEvent() - especialmente los eventos de redimensionamiento.
  • Utilizar viewport->update() para actualizar el contenido de la ventana gráfica en lugar de update(), ya que todas las operaciones de pintura tienen lugar en la ventana gráfica.

Con una política de barras de desplazamiento de Qt::ScrollBarAsNeeded (por defecto), QAbstractScrollArea muestra las barras de desplazamiento cuando proporcionan un rango de desplazamiento distinto de cero, y las oculta en caso contrario.

Las barras de desplazamiento y la ventana gráfica deben actualizarse siempre que la ventana gráfica reciba un evento de redimensionamiento o cambie el tamaño de los contenidos. La ventana gráfica también debe actualizarse cuando cambien los valores de las barras de desplazamiento. Los valores iniciales de las barras de desplazamiento suelen establecerse cuando el área recibe nuevos contenidos.

Damos un ejemplo sencillo, en el que hemos implementado un área de desplazamiento que puede desplazar cualquier QWidget. Hacemos que el widget sea hijo del viewport; de esta forma, no tenemos que calcular qué parte del widget dibujar, sino que simplemente podemos mover el widget con QWidget::move(). Cuando el contenido del área o el tamaño de la ventana cambia, hacemos lo siguiente:

QSize areaSize = viewport()->size();
QSize  widgetSize = widget->size();

verticalScrollBar()->setPageStep(areaSize.height());
horizontalScrollBar()->setPageStep(areaSize.width());
verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
updateWidgetPosition();

Cuando las barras de desplazamiento cambian de valor, tenemos que actualizar la posición del widget, es decir, encontrar la parte del widget que se va a dibujar en la ventana gráfica:

int hvalue = horizontalScrollBar()->value();
int vvalue = verticalScrollBar()->value();
QPoint topLeft = viewport()->rect().topLeft();

widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);

Para seguir los movimientos de las barras de desplazamiento, reimplementa la función virtual scrollContentsBy(). Para ajustar el comportamiento del desplazamiento, conéctate a la señal QAbstractSlider::actionTriggered() de una barra de desplazamiento y ajusta QAbstractSlider::sliderPosition como desees.

Por conveniencia, QAbstractScrollArea hace que todos los eventos viewport estén disponibles en el manejador virtual viewportEvent(). QWidget Los manejadores especializados de QAbstractScrollArea se reasignan a los eventos de la ventana gráfica en los casos en que tiene sentido. Los manejadores especializados reasignados son: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), y resizeEvent().

QScrollAreaQAbstractScrollArea, que hereda de QAbstractScrollArea, proporciona un desplazamiento suave para cualquier QWidget (es decir, el widget se desplaza píxel a píxel). Sólo necesitas subclasificar QAbstractScrollArea si necesitas un comportamiento más especializado. Por ejemplo, si todo el contenido del área no se puede dibujar en QWidget o si no se desea un desplazamiento suave.

Véase también QScrollArea.

Documentación de tipos de miembros

enum QAbstractScrollArea::SizeAdjustPolicy

Este enum especifica cómo debe ajustarse la sugerencia de tamaño de QAbstractScrollArea cuando cambia el tamaño de la ventana gráfica.

ConstanteValorDescripción
QAbstractScrollArea::AdjustIgnored0El área de desplazamiento se comportará como antes - y no hará ningún ajuste.
QAbstractScrollArea::AdjustToContents2El área de desplazamiento siempre se ajustará a la ventana gráfica.
QAbstractScrollArea::AdjustToContentsOnFirstShow1El área de desplazamiento se ajustará a la ventana gráfica la primera vez que se muestre.

Documentación de la propiedad

horizontalScrollBarPolicy : Qt::ScrollBarPolicy

Esta propiedad contiene la política para la barra de desplazamiento horizontal

La política por defecto es Qt::ScrollBarAsNeeded.

Funciones de acceso:

Qt::ScrollBarPolicy horizontalScrollBarPolicy() const
void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy)

Véase también verticalScrollBarPolicy.

sizeAdjustPolicy : SizeAdjustPolicy

Esta propiedad contiene la política que describe cómo cambia el tamaño del área de desplazamiento cuando cambia el tamaño de la ventana gráfica.

La política por defecto es QAbstractScrollArea::AdjustIgnored. Cambiar esta propiedad puede cambiar el tamaño del área de desplazamiento.

Funciones de acceso:

QAbstractScrollArea::SizeAdjustPolicy sizeAdjustPolicy() const
void setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy)

verticalScrollBarPolicy : Qt::ScrollBarPolicy

Esta propiedad contiene la política para la barra de desplazamiento vertical

La política por defecto es Qt::ScrollBarAsNeeded.

Funciones de acceso:

Qt::ScrollBarPolicy verticalScrollBarPolicy() const
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)

Véase también horizontalScrollBarPolicy.

Documentación de las funciones miembro

[explicit] QAbstractScrollArea::QAbstractScrollArea(QWidget *parent = nullptr)

Construye una ventana gráfica.

El argumento parent se envía al constructor QWidget.

[virtual noexcept] QAbstractScrollArea::~QAbstractScrollArea()

Destruye la ventana gráfica.

void QAbstractScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)

Añade widget como widget de barra de desplazamiento en la ubicación especificada por alignment.

Los widgets de la barra de desplazamiento se muestran junto a la barra de desplazamiento horizontal o vertical, y pueden colocarse a ambos lados de ella. Si desea que los widgets de la barra de desplazamiento estén siempre visibles, establezca la scrollBarPolicy de la barra de desplazamiento correspondiente en AlwaysOn.

alignment debe ser una de las siguientes: Qt::Alignleft y Qt::AlignRight, que corresponde a la barra de desplazamiento horizontal, o Qt::AlignTop y Qt::AlignBottom, que corresponde a la barra de desplazamiento vertical.

Un widget de barra de desplazamiento puede eliminarse volviendo a asignarle un parentesco o borrándolo. También es posible ocultar un widget con QWidget::hide()

El widget de la barra de desplazamiento se redimensionará para ajustarse a la geometría de la barra de desplazamiento del estilo actual. A continuación se describe el caso de los widgets de la barra de desplazamiento en la barra de desplazamiento horizontal:

La altura del widget se ajustará a la altura de la barra de desplazamiento. Para controlar la anchura del widget, utilice QWidget::setMinimumWidth y QWidget::setMaximumWidth, o implemente QWidget::sizeHint() y establezca una política de tamaño horizontal. Si quieres un widget cuadrado, llama a QStyle::pixelMetric(QStyle::PM_ScrollBarExtent) y establece la anchura a este valor.

Véase también scrollBarWidgets().

[override virtual protected] void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)

Reimplementa: QWidget::contextMenuEvent(QContextMenuEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de menú contextual para el widget viewport(). El evento se pasa en e.

Véase también QWidget::contextMenuEvent().

QWidget *QAbstractScrollArea::cornerWidget() const

Devuelve el widget de la esquina entre las dos barras de desplazamiento.

Por defecto, no hay ningún widget de esquina.

Véase también setCornerWidget().

[override virtual protected] void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)

Reimplementa: QWidget::dragEnterEvent(QDragEnterEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos drag enter (pasados en event), para el widget viewport().

Ver también QWidget::dragEnterEvent().

[override virtual protected] void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)

Reimplementa: QWidget::dragLeaveEvent(QDragLeaveEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de arrastre (pasados en event), para el widget viewport().

Ver también QWidget::dragLeaveEvent().

[override virtual protected] void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)

Reimplementa: QWidget::dragMoveEvent(QDragMoveEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de movimiento de arrastre (pasados en event), para el widget viewport().

Ver también QWidget::dragMoveEvent().

[override virtual protected] void QAbstractScrollArea::dropEvent(QDropEvent *event)

Reimplementa: QWidget::dropEvent(QDropEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos drop (pasados en event), para el widget viewport().

Ver también QWidget::dropEvent().

[override virtual protected] bool QAbstractScrollArea::event(QEvent *event)

Reimplementa: QFrame::event(QEvent *e).

Este es el manejador de eventos principal para el widget QAbstractScrollArea (no el área de desplazamiento viewport()). El event especificado es un objeto de evento general que puede necesitar ser convertido a la clase apropiada dependiendo de su tipo.

Véase también QEvent::type().

QScrollBar *QAbstractScrollArea::horizontalScrollBar() const

Devuelve la barra de desplazamiento horizontal.

Véase también setHorizontalScrollBar(), horizontalScrollBarPolicy, y verticalScrollBar().

[override virtual protected] void QAbstractScrollArea::keyPressEvent(QKeyEvent *e)

Reimplementa: QWidget::keyPressEvent(QKeyEvent *event).

Esta función es llamada con el evento e cuando se pulsa una tecla. Maneja PageUp, PageDown, Up, Down, Left, y Right, e ignora todas las otras pulsaciones de teclas.

QSize QAbstractScrollArea::maximumViewportSize() const

Devuelve el tamaño de la ventana gráfica como si las barras de desplazamiento no tuvieran un rango de desplazamiento válido.

[override virtual] QSize QAbstractScrollArea::minimumSizeHint() const

Reimplementa una función de acceso para la propiedad: QWidget::minimumSizeHint.

[override virtual protected] void QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e)

Reimplementa: QWidget::mouseDoubleClickEvent(QMouseEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de doble click de ratón para el widget viewport(). El evento se pasa en e.

Ver también QWidget::mouseDoubleClickEvent().

[override virtual protected] void QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e)

Reimplementa: QWidget::mouseMoveEvent(QMouseEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de movimiento del ratón para el widget viewport(). El evento se pasa en e.

Ver también QWidget::mouseMoveEvent().

[override virtual protected] void QAbstractScrollArea::mousePressEvent(QMouseEvent *e)

Reimplementa: QWidget::mousePressEvent(QMouseEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de pulsación de ratón para el widget viewport(). El evento se pasa en e.

La implementación por defecto llama a QWidget::mousePressEvent() para la gestión de ventanas emergentes por defecto.

Véase también QWidget::mousePressEvent().

[override virtual protected] void QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e)

Reimplementa: QWidget::mouseReleaseEvent(QMouseEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de liberación del ratón para el widget viewport(). El evento se pasa en e.

Ver también QWidget::mouseReleaseEvent().

[override virtual protected] void QAbstractScrollArea::paintEvent(QPaintEvent *event)

Reimplementa: QFrame::paintEvent(QPaintEvent *).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de pintura (pasados en event), para el widget viewport().

Nota: Si creas un QPainter, debe operar sobre el viewport().

Véase también QWidget::paintEvent().

[override virtual protected] void QAbstractScrollArea::resizeEvent(QResizeEvent *event)

Reimplementa: QWidget::resizeEvent(QResizeEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de redimensionamiento (pasados en event), para el widget viewport().

Cuando se llama a resizeEvent(), la ventana ya tiene su nueva geometría: Su nuevo tamaño es accesible a través de la función QResizeEvent::size(), y el tamaño antiguo a través de QResizeEvent::oldSize().

Véase también QWidget::resizeEvent().

QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment)

Devuelve una lista de los widgets de la barra de desplazamiento actualmente configurados. alignment puede ser cualquier combinación de las cuatro banderas de ubicación.

Véase también addScrollBarWidget().

[virtual protected] void QAbstractScrollArea::scrollContentsBy(int dx, int dy)

Este manejador virtual es llamado cuando las barras de desplazamiento son movidas por dx, dy, y consecuentemente los contenidos de la ventana deben ser desplazados en consecuencia.

La implementación por defecto simplemente llama a update() en todo viewport(), las subclases pueden reimplementar este manejador para propósitos de optimización, o - como QScrollArea - para mover un widget de contenido. Los parámetros dx y dy están ahí por conveniencia, para que la clase sepa cuánto debe desplazarse (útil, por ejemplo, cuando se hacen desplazamientos de píxeles). También puedes ignorar estos valores y desplazarte directamente a la posición que indican las barras de desplazamiento.

Llamar a esta función para desplazarse programáticamente es un error, utilice las barras de desplazamiento en su lugar (por ejemplo, llamando directamente a QScrollBar::setValue()).

void QAbstractScrollArea::setCornerWidget(QWidget *widget)

Establece el widget de la esquina entre las dos barras de desplazamiento en widget.

Probablemente también querrás establecer al menos uno de los modos de la barra de desplazamiento a AlwaysOn.

Pasando nullptr no se muestra ningún widget en la esquina.

Cualquier widget de esquina anterior se oculta.

Puede llamar a setCornerWidget() con el mismo widget en diferentes ocasiones.

Todos los widgets establecidos aquí serán eliminados por el área de desplazamiento cuando se destruya, a menos que vuelva a asignar el widget por separado después de establecer algún otro widget de esquina (o nullptr).

Cualquier nuevo widget no debe tener un padre actual.

Por defecto, ningún widget de esquina está presente.

Véase también cornerWidget() y horizontalScrollBarPolicy.

void QAbstractScrollArea::setHorizontalScrollBar(QScrollBar *scrollBar)

Sustituye la barra de desplazamiento horizontal existente por scrollBar, y establece todas las propiedades del control deslizante de la barra de desplazamiento anterior en la nueva barra de desplazamiento. La barra de desplazamiento anterior se elimina.

QAbstractScrollArea ya proporciona barras de desplazamiento horizontal y vertical por defecto. Puede llamar a esta función para sustituir la barra de desplazamiento horizontal predeterminada por su propia barra de desplazamiento personalizada.

Véase también horizontalScrollBar() y setVerticalScrollBar().

void QAbstractScrollArea::setVerticalScrollBar(QScrollBar *scrollBar)

Sustituye la barra de desplazamiento vertical existente por scrollBar, y establece todas las propiedades del control deslizante de la barra de desplazamiento anterior en la nueva barra de desplazamiento. A continuación, se elimina la barra de desplazamiento anterior.

QAbstractScrollArea ya proporciona barras de desplazamiento vertical y horizontal por defecto. Puede llamar a esta función para reemplazar la barra de desplazamiento vertical por defecto por su propia barra de desplazamiento personalizada.

Véase también verticalScrollBar() y setHorizontalScrollBar().

void QAbstractScrollArea::setViewport(QWidget *widget)

Define la ventana como widget. QAbstractScrollArea asumirá la propiedad de widget.

Si widget es nullptr, QAbstractScrollArea asignará una nueva instancia QWidget para la ventana gráfica.

Véase también viewport().

[protected] void QAbstractScrollArea::setViewportMargins(const QMargins &margins)

Establece margins alrededor del área de desplazamiento. Esto es útil para aplicaciones como hojas de cálculo con filas y columnas "bloqueadas". El espacio marginal se deja en blanco; coloque widgets en el área no utilizada.

Por defecto todos los márgenes son cero.

Véase también viewportMargins().

[protected] void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom)

Establece los márgenes alrededor del área de desplazamiento en left, top, right y bottom. Esto es útil para aplicaciones como hojas de cálculo con filas y columnas "bloqueadas". El espacio marginal se deja en blanco; coloque widgets en el área no utilizada.

Tenga en cuenta que esta función es llamada frecuentemente por QTreeView y QTableView, por lo que los márgenes deben ser implementados por las subclases de QAbstractScrollArea. Además, si las subclases se van a utilizar en vistas de elementos, no deben llamar a esta función.

Por defecto todos los márgenes son cero.

Véase también viewportMargins().

[virtual] void QAbstractScrollArea::setupViewport(QWidget *viewport)

Esta ranura es llamada por QAbstractScrollArea después de que setViewport(viewport) haya sido llamada. Reimplemente esta función en una subclase de QAbstractScrollArea para inicializar el nuevo viewport antes de utilizarlo.

Véase también setViewport().

[override virtual] QSize QAbstractScrollArea::sizeHint() const

Reimplementa: QFrame::sizeHint() const.

Devuelve la propiedad sizeHint del área de desplazamiento. El tamaño se determina usando viewportSizeHint() más algo de espacio extra para las barras de desplazamiento, si es necesario.

QScrollBar *QAbstractScrollArea::verticalScrollBar() const

Devuelve la barra de desplazamiento vertical.

Véase también setVerticalScrollBar(), verticalScrollBarPolicy, y horizontalScrollBar().

QWidget *QAbstractScrollArea::viewport() const

Devuelve el widget viewport.

Utilice la función QScrollArea::widget() para recuperar el contenido del widget de la ventana gráfica.

Véase también setViewport() y QScrollArea::widget().

[virtual protected] bool QAbstractScrollArea::viewportEvent(QEvent *event)

El manejador de eventos principal para el área de desplazamiento (el widget viewport()). Maneja el event especificado, y puede ser llamado por subclases para proporcionar un comportamiento razonable por defecto.

Devuelve true para indicar al sistema de eventos que el evento ha sido manejado, y no necesita más procesamiento; de lo contrario devuelve false para indicar que el evento debe propagarse más.

Puedes reimplementar esta función en una subclase, pero te recomendamos que utilices uno de los manejadores de eventos especializados.

Los manejadores especializados para eventos viewport son: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), y resizeEvent().

[protected] QMargins QAbstractScrollArea::viewportMargins() const

Devuelve los márgenes alrededor del área de desplazamiento. Por defecto todos los márgenes son cero.

Véase también setViewportMargins().

[virtual protected] QSize QAbstractScrollArea::viewportSizeHint() const

Devuelve el tamaño recomendado para la ventana gráfica. La implementación por defecto devuelve viewport()->sizeHint(). Tenga en cuenta que el tamaño es sólo el tamaño de la ventana gráfica, sin barras de desplazamiento visibles.

[override virtual protected] void QAbstractScrollArea::wheelEvent(QWheelEvent *e)

Reimplementa: QWidget::wheelEvent(QWheelEvent *event).

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de rueda para el widget viewport(). El evento se pasa en e.

Ver también QWidget::wheelEvent().

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