En esta página

QGraphicsLayoutItem Class

La clase QGraphicsLayoutItem puede ser heredada para permitir que tus items personalizados sean manejados por layouts. Más...

Cabecera: #include <QGraphicsLayoutItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Heredado por:

QGraphicsLayout y QGraphicsWidget

Funciones Públicas

QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
virtual ~QGraphicsLayoutItem()
QRectF contentsRect() const
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QRectF geometry() const
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsItem *graphicsItem() const
(since 6.0) virtual bool isEmpty() const
bool isLayout() const
qreal maximumHeight() const
QSizeF maximumSize() const
qreal maximumWidth() const
qreal minimumHeight() const
QSizeF minimumSize() const
qreal minimumWidth() const
bool ownedByLayout() const
QGraphicsLayoutItem *parentLayoutItem() const
qreal preferredHeight() const
QSizeF preferredSize() const
qreal preferredWidth() const
virtual void setGeometry(const QRectF &rect)
void setMaximumHeight(qreal height)
void setMaximumSize(const QSizeF &size)
void setMaximumSize(qreal w, qreal h)
void setMaximumWidth(qreal width)
void setMinimumHeight(qreal height)
void setMinimumSize(const QSizeF &size)
void setMinimumSize(qreal w, qreal h)
void setMinimumWidth(qreal width)
void setParentLayoutItem(QGraphicsLayoutItem *parent)
void setPreferredHeight(qreal height)
void setPreferredSize(const QSizeF &size)
void setPreferredSize(qreal w, qreal h)
void setPreferredWidth(qreal width)
void setSizePolicy(const QSizePolicy &policy)
void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
QSizePolicy sizePolicy() const
virtual void updateGeometry()

Funciones protegidas

void setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

Descripción Detallada

QGraphicsLayoutItem es una clase abstracta que define un conjunto de funciones virtuales que describen tamaños, políticas de tamaño y sugerencias de tamaño para cualquier objeto ordenado por QGraphicsLayout. La API contiene funciones relevantes tanto para el propio elemento como para el usuario del elemento, ya que la mayoría de las funciones de QGraphicsLayoutItem también forman parte de la API pública de la subclase.

En la mayoría de los casos, las clases de diseño existentes como QGraphicsWidget y QGraphicsLayout ya proporcionan la funcionalidad que necesitas. Sin embargo, subclasificar estas clases te permitirá crear elementos gráficos que funcionen bien con layouts (QGraphicsWidget) o layouts personalizados (QGraphicsLayout).

Subclase de QGraphicsLayoutItem

Si creas una subclase de QGraphicsLayoutItem y reimplementas sus funciones virtuales, habilitarás el layout para redimensionar y posicionar tu elemento junto con otros QGraphicsLayoutItems incluyendo QGraphicsWidget y QGraphicsLayout.

Puedes empezar por reimplementar funciones importantes: la función protegida sizeHint(), así como la función pública setGeometry(). Si quieres que tus elementos sean conscientes de los cambios inmediatos de geometría, también puedes reimplementar updateGeometry().

La geometría, la sugerencia de tamaño y la política de tamaño afectan al tamaño y la posición del elemento. Llamando a setGeometry() siempre se redimensionará y reposicionará el elemento inmediatamente. Normalmente, esta función es invocada por QGraphicsLayout después de que se haya activado la presentación, pero también puede ser invocada por el usuario del elemento en cualquier momento.

La función sizeHint() devuelve las sugerencias de tamaño mínimo, preferido y máximo del elemento. Puede anular estas propiedades llamando a setMinimumSize(), setPreferredSize() o setMaximumSize(). También puede utilizar funciones como setMinimumWidth() o setMaximumHeight() para establecer sólo el componente de anchura o altura si lo desea.

La función effectiveSizeHint(), por otro lado, devuelve una sugerencia de tamaño para cualquier Qt::SizeHint dado, y garantiza que el tamaño devuelto está ligado a los tamaños mínimo y máximo y a las sugerencias de tamaño. Puede establecer la política de tamaño vertical y horizontal del elemento llamando a setSizePolicy(). La propiedad sizePolicy es utilizada por el sistema de diseño para describir cómo este elemento prefiere crecer o encogerse.

Anidando QGraphicsLayoutItems

Los QGraphicsLayoutItems pueden ser anidados dentro de otros QGraphicsLayoutItems, similar a los layouts que pueden contener sublayouts. Esto se hace pasando un puntero QGraphicsLayoutItem al constructor protegido de QGraphicsLayoutItem, o llamando a setParentLayoutItem(). La función parentLayoutItem() devuelve un puntero al layoutItem padre del elemento. Si el padre del elemento es nullptr o si el padre no hereda de QGraphicsItem, la función parentLayoutItem() devuelve nullptr. isLayout() devuelve true si la subclase QGraphicsLayoutItem es a su vez un layout, o false en caso contrario.

Qt usa QGraphicsLayoutItem para proporcionar la funcionalidad de layout en el Graphics View Framework, pero en el futuro su uso puede extenderse por todo Qt.

Ver también QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout, y QGraphicsGridLayout.

Documentación de la Función Miembro

QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)

Construye el objeto QGraphicsLayoutItem. parent se convierte en el padre del objeto. Si isLayout es true el item es un layout, en caso contrario isLayout es false.

[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()

Destruye el objeto QGraphicsLayoutItem.

QRectF QGraphicsLayoutItem::contentsRect() const

Devuelve el rectángulo de contenido en coordenadas locales.

El rectángulo de contenido define el subrectángulo utilizado por un diseño asociado al organizar los subelementos. Esta función es una función de conveniencia que ajusta geometry() del elemento por sus márgenes de contenido. Tenga en cuenta que getContentsMargins() es una función virtual que puede reimplementar para devolver los márgenes de contenido del elemento.

Véase también getContentsMargins() y geometry().

QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Devuelve la sugerencia de tamaño efectivo para este QGraphicsLayoutItem.

which es la sugerencia de tamaño en cuestión. constraint es un argumento opcional que define una restricción especial al calcular la sugerencia de tamaño efectiva. Por defecto, constraint es QSizeF(-1, -1), lo que significa que no hay ninguna restricción para la sugerencia de tamaño.

Si quieres especificar la sugerencia de tamaño del widget para una anchura o altura dadas, puedes proporcionar la dimensión fija en constraint. Esto es útil para widgets que sólo pueden crecer vertical u horizontalmente, y necesitan establecer su anchura o su altura a un valor especial.

Por ejemplo, un elemento de párrafo de texto que quepa en una columna de ancho 200 puede crecer verticalmente. Puede pasar QSizeF(200, -1) como restricción para obtener una altura mínima, preferente y máxima adecuadas).

Puede ajustar la sugerencia de tamaño efectivo reimplementando sizeHint() en una subclase de QGraphicsLayoutItem, o llamando a una de las siguientes funciones: setMinimumSize(), setPreferredSize, o setMaximumSize() (o una combinación de ambas).

Esta función almacena en caché cada una de las sugerencias de tamaño y garantiza que sizeHint() sólo se llamará una vez por cada valor de which - a menos que no se especifique constraint y se haya llamado a updateGeometry().

Véase también sizeHint().

QRectF QGraphicsLayoutItem::geometry() const

Devuelve la geometría del elemento (por ejemplo, posición y tamaño) como QRectF. Esta función es equivalente a QRectF(pos(), size()).

Véase también setGeometry().

[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

Esta función virtual proporciona los márgenes de contenido left, top, right y bottom para este QGraphicsLayoutItem. La implementación por defecto asume que todos los márgenes de contenido son 0. Los parámetros apuntan a valores almacenados en qreals. Si alguno de los punteros es nullptr, ese valor no se actualizará.

Véase también QGraphicsWidget::setContentsMargins().

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

Devuelve el QGraphicsItem que representa este elemento de diseño. Para QGraphicsWidget se devolverá a sí mismo. Para elementos personalizados puede devolver un valor agregado.

Véase también setGraphicsItem().

[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const

Devuelve true si este elemento está vacío, es decir, si no tiene contenido y no debe ocupar espacio.

La implementación por defecto devuelve true true si el elemento ha sido ocultado, a menos que su size policy tenga retainSizeWhenHidden establecido a true

Esta función se introdujo en Qt 6.0.

Véase también sizePolicy().

bool QGraphicsLayoutItem::isLayout() const

Devuelve true si este QGraphicsLayoutItem es un diseño (por ejemplo, es heredado por un objeto que ordena otros objetos QGraphicsLayoutItem ); en caso contrario devuelve false.

Véase también QGraphicsLayout.

qreal QGraphicsLayoutItem::maximumHeight() const

Devuelve la altura máxima.

Véase también setMaximumHeight(), setMaximumSize() y maximumSize().

QSizeF QGraphicsLayoutItem::maximumSize() const

Devuelve el tamaño máximo.

Véase también setMaximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize, y sizeHint().

qreal QGraphicsLayoutItem::maximumWidth() const

Devuelve la anchura máxima.

Véase también setMaximumWidth(), setMaximumSize() y maximumSize().

qreal QGraphicsLayoutItem::minimumHeight() const

Devuelve la altura mínima.

Véase también setMinimumHeight(), setMinimumSize() y minimumSize().

QSizeF QGraphicsLayoutItem::minimumSize() const

Devuelve el tamaño mínimo.

Véase también setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize, y sizeHint().

qreal QGraphicsLayoutItem::minimumWidth() const

Devuelve la anchura mínima.

Véase también setMinimumWidth(), setMinimumSize() y minimumSize().

bool QGraphicsLayoutItem::ownedByLayout() const

Devuelve si un diseño debe eliminar este elemento en su destructor. Si es true, entonces el layout lo borrará. Si es falso, entonces se asume que otro objeto tiene la propiedad de él, y el diseño no borrará este elemento.

Si el elemento hereda tanto de QGraphicsItem como de QGraphicsLayoutItem (como QGraphicsWidget ), el elemento forma parte de dos jerarquías de propiedad. Esta propiedad informa de lo que la maqueta debe hacer con sus elementos hijos cuando se destruye. En el caso de QGraphicsWidget, es preferible que cuando se elimine el diseño no se eliminen sus elementos hijos (ya que también forman parte de la jerarquía de elementos gráficos).

Por defecto, este valor se inicializa en false en QGraphicsLayoutItem, pero se sobrescribe en QGraphicsLayout para devolver true. Esto se debe a que QGraphicsLayout normalmente no forma parte de la jerarquía de QGraphicsItem, por lo que el diseño padre debería eliminarlo. Las subclases pueden anular este comportamiento por defecto llamando a setOwnedByLayout(true).

Véase también setOwnedByLayout().

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

Devuelve el padre de este QGraphicsLayoutItem, o nullptr si no hay padre, o si el padre no hereda de QGraphicsLayoutItem (QGraphicsLayoutItem se utiliza a menudo a través de la herencia múltiple con QObject-clases derivadas).

Véase también setParentLayoutItem().

qreal QGraphicsLayoutItem::preferredHeight() const

Devuelve la altura preferida.

Véase también setPreferredHeight(), setPreferredSize() y preferredSize().

QSizeF QGraphicsLayoutItem::preferredSize() const

Devuelve el tamaño preferido.

Véase también setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize, y sizeHint().

qreal QGraphicsLayoutItem::preferredWidth() const

Devuelve el ancho preferido.

Véase también setPreferredWidth(), setPreferredSize() y preferredSize().

[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)

Esta función virtual establece la geometría de QGraphicsLayoutItem en rect, que está en coordenadas padre (por ejemplo, la esquina superior izquierda de rect equivale a la posición del elemento en coordenadas padre).

Debe reimplementar esta función en una subclase de QGraphicsLayoutItem para recibir actualizaciones de geometría. El layout llamará a esta función cuando realice una reordenación.

Si rect está fuera de los límites de minimumSize y maximumSize, se ajustará a su tamaño más cercano para que esté dentro de los límites legales.

Véase también geometry().

[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)

Si el QGraphicsLayoutItem representa un QGraphicsItem, y quiere aprovechar las capacidades de reparenting automático de QGraphicsLayout debe establecer este valor. Tenga en cuenta que si borra item y no borra el elemento de diseño, es responsable de llamar a setGraphicsItem(nullptr) para evitar tener un puntero colgando.

Véase también graphicsItem().

void QGraphicsLayoutItem::setMaximumHeight(qreal height)

Establece la altura máxima en height.

Véase también maximumHeight(), setMaximumSize() y maximumSize().

void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)

Establece el tamaño máximo en size. Esta propiedad anula sizeHint() para Qt::MaximumSize y garantiza que effectiveSizeHint() nunca devolverá un tamaño mayor que size. Para anular el tamaño máximo, utilice un tamaño no válido.

Véase también maximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize, y sizeHint().

void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)

Esta función es equivalente a llamar a setMaximumSize(QSizeF(w, h)).

Véase también maximumSize(), setMinimumSize(), setPreferredSize() y sizeHint().

void QGraphicsLayoutItem::setMaximumWidth(qreal width)

Establece la anchura máxima en width.

Véase también maximumWidth(), setMaximumSize() y maximumSize().

void QGraphicsLayoutItem::setMinimumHeight(qreal height)

Establece la altura mínima en height.

Véase también minimumHeight(), setMinimumSize() y minimumSize().

void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)

Establece el tamaño mínimo en size. Esta propiedad anula sizeHint() para Qt::MinimumSize y garantiza que effectiveSizeHint() nunca devolverá un tamaño inferior a size. Para anular el tamaño mínimo, utilice un tamaño no válido.

Véase también minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth(), y setMinimumHeight().

void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)

Esta función es equivalente a llamar a setMinimumSize(QSizeF(w, h)).

Véase también minimumSize(), setMaximumSize(), setPreferredSize() y sizeHint().

void QGraphicsLayoutItem::setMinimumWidth(qreal width)

Establece la anchura mínima en width.

Véase también minimumWidth(), setMinimumSize() y minimumSize().

[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)

Establece si un diseño debe eliminar este elemento en su destructor o no. ownership debe ser true para que el diseño lo elimine.

Véase también ownedByLayout().

void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)

Establece el padre de este QGraphicsLayoutItem en parent.

Véase también parentLayoutItem().

void QGraphicsLayoutItem::setPreferredHeight(qreal height)

Establece la altura preferida en height.

Véase también preferredHeight(), preferredWidth(), setPreferredSize() y preferredSize().

void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)

Establece el tamaño preferido en size. Esta propiedad anula sizeHint() para Qt::PreferredSize y proporciona el valor por defecto para effectiveSizeHint(). Para desactivar el tamaño preferido, utilice un tamaño no válido.

Véase también preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize, y sizeHint().

void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)

Esta función es equivalente a llamar a setPreferredSize(QSizeF(w, h)).

Véase también preferredSize(), setMaximumSize(), setMinimumSize() y sizeHint().

void QGraphicsLayoutItem::setPreferredWidth(qreal width)

Establece el ancho preferido en width.

Véase también preferredWidth(), preferredHeight(), setPreferredSize() y preferredSize().

void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)

Establece la política de tamaño en policy. La política de tamaño describe cómo debe crecer el elemento horizontal y verticalmente cuando se organiza en un diseño.

QGraphicsLayoutItemLa política de tamaño por defecto de 's es (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), pero es común que las subclases cambien el valor por defecto. Por ejemplo, QGraphicsWidget por defecto es (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType).

Véase también sizePolicy() y QWidget::sizePolicy().

void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)

Esta función es equivalente a llamar a setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType)).

Se trata de una función sobrecargada.

Véase también sizePolicy() y QWidget::sizePolicy().

[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Esta función virtual pura devuelve la sugerencia de tamaño para which de QGraphicsLayoutItem, utilizando la anchura o altura de constraint para restringir la salida.

Reimplemente esta función en una subclase de QGraphicsLayoutItem para proporcionar las sugerencias de tamaño necesarias para sus elementos.

Véase también effectiveSizeHint().

QSizePolicy QGraphicsLayoutItem::sizePolicy() const

Devuelve la política de tamaño actual.

Véase también setSizePolicy() y QWidget::sizePolicy().

[virtual] void QGraphicsLayoutItem::updateGeometry()

Esta función virtual descarta cualquier información de sugerencia de tamaño almacenada en caché. Siempre debe llamar a esta función si cambia el valor de retorno de la función sizeHint(). Las subclases siempre deben llamar a la implementación base cuando reimplementen esta función.

Véase también effectiveSizeHint().

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