QGraphicsItem Class
La clase QGraphicsItem es la clase base para todos los elementos gráficos de QGraphicsScene. Más...
| Cabecera: | #include <QGraphicsItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Heredado por: | QAbstractGraphicsShapeItem, QGraphicsItemGroup, QGraphicsLineItem, QGraphicsObject, y QGraphicsPixmapItem |
Tipos Públicos
| enum | CacheMode { NoCache, ItemCoordinateCache, DeviceCoordinateCache } |
| enum | GraphicsItemChange { ItemEnabledChange, ItemEnabledHasChanged, ItemPositionChange, ItemPositionHasChanged, ItemTransformChange, …, ItemScenePositionHasChanged } |
| enum | GraphicsItemFlag { ItemIsMovable, ItemIsSelectable, ItemIsFocusable, ItemClipsToShape, ItemClipsChildrenToShape, …, ItemContainsChildrenInShape } |
| flags | GraphicsItemFlags |
| enum | PanelModality { NonModal, PanelModal, SceneModal } |
| enum { Type, UserType } |
Funciones Públicas
| QGraphicsItem(QGraphicsItem *parent = nullptr) | |
| virtual | ~QGraphicsItem() |
| bool | acceptDrops() const |
| bool | acceptHoverEvents() const |
| bool | acceptTouchEvents() const |
| Qt::MouseButtons | acceptedMouseButtons() const |
| virtual void | advance(int fase) |
| virtual QRectF | boundingRect() const = 0 |
| QRegion | boundingRegion(const QTransform &itemToDeviceTransform) const |
| qreal | boundingRegionGranularity() const |
| QGraphicsItem::CacheMode | cacheMode() const |
| QList<QGraphicsItem *> | childItems() const |
| QRectF | childrenBoundingRect() const |
| void | clearFocus() |
| QPainterPath | clipPath() const |
| bool virtual | collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| bool virtual | collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QList<QGraphicsItem *> | collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const |
| QGraphicsItem * | commonAncestorItem(const QGraphicsItem *other) const |
| bool virtual | contains(const QPointF &point) const |
| QCursor | cursor() const |
| QVariant | data(int key) const |
| QTransform | deviceTransform(const QTransform &viewportTransform) const |
| qreal | effectiveOpacity() const |
| void | ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50) |
| void | ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50) |
| bool | filtersChildEvents() const |
| QGraphicsItem::GraphicsItemFlags | flags() const |
| QGraphicsItem * | focusItem() const |
| QGraphicsItem * | focusProxy() const |
| void | grabKeyboard() |
| void | grabMouse() |
| QGraphicsEffect * | graphicsEffect() const |
| QGraphicsItemGroup * () | group() const |
| bool | hasCursor() const |
| bool | hasFocus() const |
| void | hide() |
| Qt::InputMethodHints | inputMethodHints() const |
| void | installSceneEventFilter(QGraphicsItem *filterItem) |
| bool | isActive() const |
| bool | isAncestorOf(const QGraphicsItem *child) const |
| bool | isBlockedByModalPanel(QGraphicsItem **blockingPanel = nullptr) const |
| bool | isClipped() const |
| bool | isEnabled() const |
| bool | isObscured(const QRectF &rect = QRectF()) const |
| bool | isObscured(qreal x, qreal y, qreal w, qreal h) const |
| bool virtual | isObscuredBy(const QGraphicsItem *item) const |
| bool | isPanel() const |
| bool | isSelected() const |
| bool | isUnderMouse() const |
| bool | isVisible() const |
| bool | isVisibleTo(const QGraphicsItem *parent) const |
| bool | isWidget() const |
| bool | isWindow() const |
| QTransformar | itemTransform(const QGraphicsItem *other, bool *ok = nullptr) const |
| QPainterPath | mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const |
| QPointF | mapFromItem(const QGraphicsItem *item, const QPointF &point) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, const QRectF &rect) const |
| QPolygonF | mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const |
| QPainterPath | mapFromParent(const QPainterPath &path) const |
| QPointF | mapFromParent(const QPointF &point) const |
| QPolygonF | mapFromParent(const QPolygonF &polygon) const |
| QPolygonF | mapFromParent(const QRectF &rect) const |
| QPolygonF | mapFromParent(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapFromParent(qreal x, qreal y) const |
| QPainterPath | mapFromScene(const QPainterPath &path) const |
| QPointF | mapFromScene(const QPointF &point) const |
| QPolygonF | mapFromScene(const QPolygonF &polygon) const |
| QPolygonF | mapFromScene(const QRectF &rect) const |
| QPolygonF | mapFromScene(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapFromScene(qreal x, qreal y) const |
| QRectF | mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const |
| QRectF | mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectFromParent(const QRectF &rect) const |
| QRectF | mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectFromScene(const QRectF &rect) const |
| QRectF | mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const |
| QRectF | mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToParent(const QRectF &rect) const |
| QRectF | mapRectToParent(qreal x, qreal y, qreal w, qreal h) const |
| QRectF | mapRectToScene(const QRectF &rect) const |
| QRectF | mapRectToScene(qreal x, qreal y, qreal w, qreal h) const |
| QPainterPath | mapToItem(const QGraphicsItem *item, const QPainterPath &path) const |
| QPointF | mapToItem(const QGraphicsItem *item, const QPointF &point) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, const QRectF &rect) const |
| QPolygonF | mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToItem(const QGraphicsItem *item, qreal x, qreal y) const |
| QPainterPath | mapToParent(const QPainterPath &path) const |
| QPointF | mapToParent(const QPointF &point) const |
| QPolygonF | mapToParent(const QPolygonF &polygon) const |
| QPolygonF | mapToParent(const QRectF &rect) const |
| QPolygonF | mapToParent(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToParent(qreal x, qreal y) const |
| QPainterPath | mapToScene(const QPainterPath &path) const |
| QPointF | mapToScene(const QPointF &point) const |
| QPolygonF | mapToScene(const QPolygonF &polygon) const |
| QPolygonF | mapToScene(const QRectF &rect) const |
| QPolygonF | mapToScene(qreal x, qreal y, qreal w, qreal h) const |
| QPointF | mapToScene(qreal x, qreal y) const |
| void | moveBy(qreal dx, qreal dy) |
| qreal | opacity() const |
| virtual QPainterPath | opaqueArea() const |
| virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) = 0 |
| QGraphicsItem * | panel() const |
| QGraphicsItem::PanelModalidad | panelModality() const |
| QGraphicsItem * | parentItem() const |
| QGraphicsObject * | parentObject() const |
| QGraphicsWidget * | parentWidget() const |
| QPointF | pos() const |
| void | removeSceneEventFilter(QGraphicsItem *filterItem) |
| void | resetTransform() |
| qreal | rotation() const |
| qreal | scale() const |
| QGraphicsScene * | scene() const |
| QRectF | sceneBoundingRect() const |
| QPointF | scenePos() const |
| QTransform | sceneTransform() const |
| void | scroll(qreal dx, qreal dy, const QRectF &rect = QRectF()) |
| void | setAcceptDrops(bool on) |
| void | setAcceptHoverEvents(bool enabled) |
| void | setAcceptTouchEvents(bool enabled) |
| void | setAcceptedMouseButtons(Qt::MouseButtons botones) |
| void | setActive(bool active) |
| void | setBoundingRegionGranularity(qreal granularity) |
| void | setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize()) |
| void | setCursor(const QCursor &cursor) |
| void | setData(int key, const QVariant &value) |
| void | setEnabled(bool enabled) |
| void | setFiltersChildEvents(bool enabled) |
| void | setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true) |
| void | setFlags(QGraphicsItem::GraphicsItemFlags flags) |
| void | setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason) |
| void | setFocusProxy(QGraphicsItem *item) |
| void | setGraphicsEffect(QGraphicsEffect *effect) |
| void | setGroup(QGraphicsItemGroup *group) |
| void | setInputMethodHints(Qt::InputMethodHints hints) |
| void | setOpacity(qreal opacity) |
| void | setPanelModality(QGraphicsItem::PanelModality panelModality) |
| void | setParentItem(QGraphicsItem *nuevoParente) |
| void | setPos(const QPointF &pos) |
| void | setPos(qreal x, qreal y) |
| void | setRotation(qreal angle) |
| void | setScale(qreal factor) |
| void | setSelected(bool selected) |
| void | setToolTip(const QString &toolTip) |
| void | setTransform(const QTransform &matrix, bool combine = false) |
| void | setTransformOriginPoint(const QPointF &origin) |
| void | setTransformOriginPoint(qreal x, qreal y) |
| void | setTransformations(const QList<QGraphicsTransform *> &transformations) |
| void | setVisible(bool visible) |
| void | setX(qreal x) |
| void | setY(qreal y) |
| void | setZValue(qreal z) |
| virtual QPainterPath | shape() const |
| void | show() |
| void | stackBefore(const QGraphicsItem *sibling) |
| QGraphicsObject * | toGraphicsObject() |
| const QGraphicsObject * | toGraphicsObject() const |
| QString | toolTip() const |
| QGraphicsItem * | topLevelItem() const |
| QGraphicsWidget * | topLevelWidget() const |
| QTransform | transform() const |
| QPointF | transformOriginPoint() const |
| QList<QGraphicsTransform *> | transformations() const |
| int virtual | type() const |
| void | ungrabKeyboard() |
| void | ungrabMouse() |
| void | unsetCursor() |
| void | update(const QRectF &rect = QRectF()) |
| void | update(qreal x, qreal y, qreal anchura, qreal altura) |
| QGraphicsWidget * | window() const |
| qreal | x() const |
| qreal | y() const |
| qreal | zValue() const |
Funciones protegidas
| virtual void | contextMenuEvent(QGraphicsSceneContextMenuEvent *event) |
| virtual void | dragEnterEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dragLeaveEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dragMoveEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | dropEvent(QGraphicsSceneDragDropEvent *event) |
| virtual void | focusInEvent(QFocusEvent *event) |
| virtual void | focusOutEvent(QFocusEvent *event) |
| virtual void | hoverEnterEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | hoverLeaveEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | hoverMoveEvent(QGraphicsSceneHoverEvent *event) |
| virtual void | inputMethodEvent(QInputMethodEvent *event) |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const |
| virtual QVariant | itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) |
| virtual void | keyPressEvent(QKeyEvent *event) |
| virtual void | keyReleaseEvent(QKeyEvent *event) |
| virtual void | mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mouseMoveEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mousePressEvent(QGraphicsSceneMouseEvent *event) |
| virtual void | mouseReleaseEvent(QGraphicsSceneMouseEvent *event) |
| void | prepareGeometryChange() |
| virtual bool | sceneEvent(QEvent *event) |
| virtual bool | sceneEventFilter(QGraphicsItem *watched, QEvent *event) |
| void | updateMicroFocus() |
| virtual void | wheelEvent(QGraphicsSceneWheelEvent *event) |
No miembros relacionados
| T | qgraphicsitem_cast(QGraphicsItem *item) |
Descripción detallada
Proporciona una base ligera para escribir tus propios elementos personalizados. Esto incluye la definición de la geometría del item, la detección de colisiones, su implementación de pintado y la interacción con el item a través de sus manejadores de eventos. QGraphicsItem es parte de la estructura de vista gráfica.

Para mayor comodidad, Qt proporciona un conjunto de elementos gráficos estándar para las formas más comunes. Estos son:
- QGraphicsEllipseItem proporciona un elemento elipse
- QGraphicsLineItem proporciona un elemento de línea
- QGraphicsPathItem proporciona un elemento de trayectoria arbitraria
- QGraphicsPixmapItem proporciona un elemento pixmap
- QGraphicsPolygonItem proporciona un elemento de polígono
- QGraphicsRectItem proporciona un elemento rectangular
- QGraphicsSimpleTextItem proporciona un elemento de etiqueta de texto simple
- QGraphicsTextItem proporciona un elemento de navegador de texto avanzado
Toda la información geométrica de un elemento se basa en su sistema de coordenadas local. La posición del elemento, pos(), es la única función que no opera en coordenadas locales, ya que devuelve una posición en coordenadas padre. El Sistema de Coordenadas de la Vista Gráfica describe el sistema de coordenadas en detalle.
Puedes establecer si un elemento debe estar visible (es decir, dibujado y aceptando eventos), llamando a setVisible(). Al ocultar un elemento también se ocultarán sus hijos. Del mismo modo, puedes activar o desactivar un elemento llamando a setEnabled(). Si desactivas un elemento, también se desactivarán todos sus hijos. Por defecto, los elementos están visibles y activados. Para conmutar si un elemento está seleccionado o no, primero active la selección activando la bandera ItemIsSelectable y, a continuación, llame a setSelected(). Normalmente, la selección es activada por la escena, como resultado de la interacción del usuario.
Para escribir tu propio ítem gráfico, primero debes crear una subclase de QGraphicsItem, y luego comenzar implementando sus dos funciones públicas virtuales puras: boundingRect(), que devuelve una estimación del área pintada por el ítem, y paint(), que implementa la pintura real. Por ejemplo:
class SimpleItem : public QGraphicsItem { public: QRectF boundingRect() const override { qreal penWidth = 1; return QRectF(-10 - penWidth / 2, -10 - penWidth / 2, 20 + penWidth, 20 + penWidth); } void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override { painter->drawRoundedRect(-10, -10, 20, 20, 5, 5); } };
La función boundingRect() tiene muchos propósitos diferentes. QGraphicsScene basa su índice de ítems en boundingRect(), y QGraphicsView la utiliza tanto para seleccionar ítems invisibles, como para determinar el área que necesita ser recompuesta cuando se dibujan ítems superpuestos. Además, los mecanismos de detección de colisiones de QGraphicsItem utilizan boundingRect() para proporcionar un corte eficiente. El algoritmo de colisión de grano fino de collidesWithItem() se basa en llamar a shape(), que devuelve un contorno preciso de la forma del elemento como QPainterPath.
QGraphicsScene espera que todos los elementos boundingRect() y shape() permanezcan sin cambios a menos que se le notifique. Si desea cambiar la geometría de un elemento de alguna manera, primero debe llamar a prepareGeometryChange() para permitir que QGraphicsScene actualice su contabilidad.
La detección de colisiones puede hacerse de dos maneras:
- Reimplemente shape() para devolver una forma precisa para su elemento, y confíe en la implementación por defecto de collidesWithItem() para hacer la intersección forma-forma. Esto puede ser bastante caro si las formas son complejas.
- Reimplemente collidesWithItem() para obtener su propio algoritmo de colisión entre objetos y formas.
La función contains() puede ser llamada para determinar si el ítem contiene un punto o no. Esta función también puede ser reimplementada por el elemento. El comportamiento por defecto de contains() se basa en llamar a shape().
Los ítems pueden contener otros ítems, y también ser contenidos por otros ítems. Todos los ítems pueden tener un ítem padre y una lista de hijos. A menos que el elemento no tenga padre, su posición está en las coordenadas del padre (es decir, las coordenadas locales del padre). Los elementos padre propagan tanto su posición como su transformación a todos los hijos.

Transformaciones
QGraphicsItem soporta transformaciones proyectivas además de su posición base, pos(). Hay varias formas de cambiar la transformación de un ítem. Para transformaciones simples, puedes llamar a cualquiera de las funciones de conveniencia setRotation() o setScale(), o puedes pasar cualquier matriz de transformación a setTransform(). Para un control avanzado de las transformaciones, también tiene la opción de establecer varias transformaciones combinadas llamando a setTransformations().
Las transformaciones de los elementos se acumulan de padre a hijo, por lo que si un elemento padre e hijo se giran 90 grados, la transformación total del hijo será de 180 grados. Del mismo modo, si el elemento padre se escala al doble de su tamaño original, sus hijos también serán el doble de grandes. La transformación de un elemento no afecta a su propia geometría local; todas las funciones de geometría (por ejemplo, contains(), update(), y todas las funciones de mapeo) siguen operando en coordenadas locales. Por conveniencia, QGraphicsItem proporciona las funciones sceneTransform(), que devuelve la matriz de transformación total del ítem (incluyendo su posición y las posiciones y transformaciones de todos los padres), y scenePos(), que devuelve su posición en coordenadas de escena. Para restablecer la matriz de un elemento, llame a resetTransform().
Ciertas operaciones de transformación producen un resultado diferente dependiendo del orden en que se aplican. Por ejemplo, si escalas una transformación, y luego la rotas, puedes obtener un resultado diferente que si la transformación fue rotada primero. Sin embargo, el orden en que se establecen las propiedades de transformación en QGraphicsItem no afecta a la transformación resultante; QGraphicsItem siempre aplica las propiedades en un orden fijo y definido:
- Se aplica la transformación base del ítem (transform())
- La lista de transformaciones del ítem se aplica en orden (transformations())
- El elemento se rota respecto a su punto de origen de transformación (rotation(), transformOriginPoint())
- El elemento se escala con respecto a su punto de origen de transformación (scale(), transformOriginPoint())
Pintura
La función paint() es llamada por QGraphicsView para pintar el contenido del elemento. El elemento no tiene fondo ni relleno propio por defecto; lo que haya detrás del elemento brillará a través de todas las áreas que no se pinten explícitamente en esta función. Puede llamar a update() para programar un repintado, pasando opcionalmente el rectángulo que necesita ser repintado. Dependiendo de si el ítem es visible o no en una vista, el ítem puede o no ser repintado; no hay equivalente a QWidget::repaint() en QGraphicsItem.
Los ítems son pintados por la vista, empezando por los ítems padre y luego dibujando los hijos, en orden ascendente de apilamiento. Puedes establecer el orden de apilamiento de un elemento llamando a setZValue(), y comprobarlo llamando a zValue(), donde los elementos con valores z bajos se pintan antes que los elementos con valores z altos. El orden de apilamiento se aplica a los elementos hermanos; los padres siempre se dibujan antes que sus hijos.
Ordenación
Todos los elementos se dibujan en un orden definido y estable, y este mismo orden decide qué elementos recibirán primero la entrada del ratón al hacer clic en la escena. Normalmente no tienes que preocuparte por la ordenación, ya que los elementos siguen un "orden natural", siguiendo la estructura lógica de la escena.
Los ítems hijos de un ítem se apilan sobre el ítem padre, y los ítems hermanos se apilan por orden de inserción (es decir, en el mismo orden en que fueron añadidos a la escena, o añadidos al mismo ítem padre). Si añades un elemento A y luego B, B estará encima de A. Si luego añades C, el orden de apilamiento de los elementos será A, luego B, luego C.

Este ejemplo muestra el orden de apilamiento de todas las extremidades del robot del ejemplo Arrastrar y soltar robot. El torso es el elemento raíz (todos los demás elementos son hijos o descendientes del torso), por lo que se dibuja en primer lugar. A continuación, se dibuja la cabeza, ya que es el primer elemento de la lista de hijos del torso. A continuación se dibuja el brazo superior izquierdo. Como el brazo inferior es hijo del brazo superior, se dibuja el brazo inferior, seguido del siguiente hermano del brazo superior, que es el brazo superior derecho, y así sucesivamente.
Los usuarios avanzados pueden modificar la ordenación de los elementos:
- Puedes llamar a setZValue() en un elemento para apilarlo explícitamente encima o debajo de otros elementos hermanos. El valor Z por defecto para un elemento es 0. Los elementos con el mismo valor Z se apilan por orden de inserción.
- Puede llamar a stackBefore() para reordenar la lista de hijos. Esto modificará directamente el orden de inserción.
- Puede establecer la bandera ItemStacksBehindParent para apilar un elemento hijo detrás de su padre.
El orden de apilamiento de dos ítems hermanos también cuenta para los ítems hijos y descendientes de cada ítem. Así, si un elemento está encima de otro, todos sus hijos también estarán encima de todos los hijos del otro elemento.
Eventos
QGraphicsItem recibe eventos de QGraphicsScene a través de la función virtual sceneEvent(). Esta función distribuye los eventos más comunes a un conjunto de manejadores de eventos de conveniencia:
- contextMenuEvent() maneja los eventos del menú contextual
- focusInEvent() y focusOutEvent() manejan los eventos de entrada y salida del foco
- hoverEnterEvent(), hoverMoveEvent(), y hoverLeaveEvent() manejan los eventos de entrada, movimiento y salida del hover
- inputMethodEvent() maneja eventos de entrada, para soporte de accesibilidad
- keyPressEvent() y keyReleaseEvent() manejan eventos de pulsación y liberación de teclas
- mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), y mouseDoubleClickEvent() manejan eventos de pulsación, movimiento, liberación, clic y doble clic del ratón
Puedes filtrar los eventos de cualquier otro elemento instalando filtros de eventos. Esta funcionalidad es independiente de los filtros de eventos normales de Qt (ver QObject::installEventFilter()), que sólo funcionan en subclases de QObject. Después de instalar tu elemento como filtro de eventos para otro elemento llamando a installSceneEventFilter(), los eventos filtrados serán recibidos por la función virtual sceneEventFilter(). Puedes eliminar los filtros de eventos de elementos llamando a removeSceneEventFilter().
Datos personalizados
A veces es útil registrar datos personalizados con un elemento, ya sea un elemento personalizado o un elemento estándar. Puede llamar a setData() en cualquier elemento para almacenar datos en él utilizando un par clave-valor (siendo la clave un número entero, y el valor un QVariant). Para obtener datos personalizados de un elemento, llame a data(). Esta funcionalidad es completamente ajena a Qt; se proporciona para comodidad del usuario.
Ver también QGraphicsScene, QGraphicsView, y Graphics View Framework.
Documentación de tipos de miembros
enum QGraphicsItem::CacheMode
Este enum describe los modos de caché de QGraphicsItem. La caché se utiliza para acelerar el renderizado asignando y renderizando a un búfer de píxeles fuera de la pantalla, que puede ser reutilizado cuando el elemento requiere ser redibujado. En algunos dispositivos de pintura, la caché se almacena directamente en la memoria gráfica, lo que hace que el renderizado sea muy rápido.
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::NoCache | 0 | Por defecto, la caché de elementos está desactivada. QGraphicsItem::paint() es llamado cada vez que el ítem necesita ser redibujado. |
QGraphicsItem::ItemCoordinateCache | 1 | El almacenamiento en caché está habilitado para el sistema de coordenadas lógico (local) del elemento. QGraphicsItem crea un búfer de píxeles fuera de la pantalla con un tamaño / resolución configurable que puedes pasar a QGraphicsItem::setCacheMode(). La calidad del renderizado se degradará dependiendo de la resolución de la caché y de la transformación del elemento. La primera vez que se redibuja el elemento, se renderiza en la caché, y la caché se reutiliza para cada exposición posterior. La caché también se reutiliza a medida que se transforma el elemento. Para ajustar la resolución de la caché, puede volver a llamar a setCacheMode(). |
QGraphicsItem::DeviceCoordinateCache | 2 | El almacenamiento en caché se activa a nivel de dispositivo de pintura, en coordenadas de dispositivo. Este modo es para elementos que se pueden mover, pero que no se rotan, escalan o cizallan. Si el elemento se transforma directa o indirectamente, la caché se regenerará automáticamente. A diferencia de ItemCoordinateCacheMode, DeviceCoordinateCache siempre renderiza con la máxima calidad. |
Véase también QGraphicsItem::setCacheMode().
enum QGraphicsItem::GraphicsItemChange
Este enum describe los cambios de estado que son notificados por QGraphicsItem::itemChange(). Las notificaciones se envían a medida que cambia el estado y, en algunos casos, se pueden realizar ajustes (consulte la documentación de cada cambio para obtener más detalles).
Nota: Ten cuidado con llamar a funciones en el propio QGraphicsItem dentro de itemChange(), ya que ciertas llamadas a funciones pueden llevar a una recursividad no deseada. Por ejemplo, no puedes llamar a setPos() dentro de itemChange() en una notificación de ItemPositionChange, ya que la función setPos() volverá a llamar a itemChange(ItemPositionChange). En su lugar, puede devolver la nueva posición ajustada desde itemChange().
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::ItemEnabledChange | 3 | El estado habilitado del elemento cambia. Si el elemento está activado, se desactivará y viceversa. El argumento valor es el nuevo estado habilitado (es decir, verdadero o falso). No llame a setEnabled() en itemChange() ya que esta notificación se entrega. En su lugar, puede devolver el nuevo estado desde itemChange(). |
QGraphicsItem::ItemEnabledHasChanged | 13 | El estado activado del elemento ha cambiado. El argumento value es el nuevo estado habilitado (es decir, verdadero o falso). No llame a setEnabled() en itemChange() ya que esta notificación se entrega. El valor devuelto se ignora. |
QGraphicsItem::ItemPositionChange | 0 | La posición del elemento cambia. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y cuando la posición local del elemento cambia, relativa a su padre (es decir, como resultado de llamar a setPos() o moveBy()). El argumento valor es la nueva posición (es decir, un QPointF). Puede llamar a pos() para obtener la posición original. No llame a setPos() o moveBy() en itemChange() mientras se envía esta notificación; en su lugar, puede devolver la nueva posición ajustada desde itemChange(). Después de esta notificación, QGraphicsItem envía inmediatamente la notificación ItemPositionHasChanged si la posición ha cambiado. |
QGraphicsItem::ItemPositionHasChanged | 9 | La posición del artículo ha cambiado. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y después de que la posición local del elemento, relativa a su padre, haya cambiado. El argumento de valor es la nueva posición (igual que pos()), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). |
QGraphicsItem::ItemTransformChange | 8 | La matriz de transformación del elemento cambia. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y cuando la matriz de transformación local del elemento cambia (es decir, como resultado de llamar a setTransform(). El argumento de valor es la nueva matriz (es decir, un QTransform); para obtener la matriz antigua, llame a transform(). No llame a setTransform() ni establezca ninguna de las propiedades de transformación en itemChange() mientras se envía esta notificación; en su lugar, puede devolver la nueva matriz desde itemChange(). Esta notificación no se envía si cambias las propiedades de transformación. |
QGraphicsItem::ItemTransformHasChanged | 10 | La matriz de transformación del elemento ha cambiado porque se ha llamado a setTransform o porque se ha cambiado una de las propiedades de transformación. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y después de que la matriz de transformación local del elemento haya cambiado. El argumento de valor es la nueva matriz (igual que transform()), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). |
QGraphicsItem::ItemRotationChange | 28 | La propiedad de rotación del elemento cambia. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y cuando la propiedad de rotación del elemento cambia (es decir, como resultado de llamar a setRotation()). El argumento de valor es la nueva rotación (es decir, un doble); para obtener la rotación anterior, llame a rotation(). No llame a setRotation() en itemChange() ya que se entrega esta notificación; en su lugar, puede devolver la nueva rotación desde itemChange(). |
QGraphicsItem::ItemRotationHasChanged | 29 | La propiedad de rotación del elemento ha cambiado. Esta notificación se envía si la bandera ItemSendsGeometryChanges está activada, y después de que la propiedad de rotación del elemento haya cambiado. El argumento de valor es la nueva rotación (es decir, un doble), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). No llame a setRotation() en itemChange() ya que esta notificación se entrega. |
QGraphicsItem::ItemScaleChange | 30 | La propiedad de escala del elemento cambia. Esta notificación se envía si el indicador ItemSendsGeometryChanges está activado, y cuando la propiedad de escala del elemento cambia (es decir, como resultado de llamar a setScale()). El argumento de valor es la nueva escala (es decir, un doble); para obtener la escala antigua, llame a scale(). No llame a setScale() en itemChange() ya que se entrega esta notificación; en su lugar, puede devolver la nueva escala desde itemChange(). |
QGraphicsItem::ItemScaleHasChanged | 31 | La propiedad de escala del elemento ha cambiado. Esta notificación se envía si el indicador ItemSendsGeometryChanges está activado, y después de que la propiedad de escala del elemento haya cambiado. El argumento de valor es la nueva escala (es decir, un doble), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). No llame a setScale() en itemChange() ya que esta notificación se entrega. |
QGraphicsItem::ItemTransformOriginPointChange | 32 | La propiedad de punto de origen de transformación del elemento cambia. Esta notificación se envía si el indicador ItemSendsGeometryChanges está activado, y cuando la propiedad del punto de origen de la transformación del elemento cambia (es decir, como resultado de llamar a setTransformOriginPoint()). El argumento de valor es el nuevo punto de origen (es decir, un QPointF); para obtener el punto de origen antiguo, llame a transformOriginPoint(). No llame a setTransformOriginPoint() en itemChange() ya que se entrega esta notificación; en su lugar, puede devolver el nuevo punto de origen de transformación desde itemChange(). |
QGraphicsItem::ItemTransformOriginPointHasChanged | 33 | La propiedad del punto de origen de transformación del elemento ha cambiado. Esta notificación se envía si el indicador ItemSendsGeometryChanges está habilitado, y después de que la propiedad del punto de origen de transformación del elemento haya cambiado. El argumento de valor es el nuevo punto de origen (es decir, un QPointF), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). No llame a setTransformOriginPoint() en itemChange() ya que esta notificación se entrega. |
QGraphicsItem::ItemSelectedChange | 4 | El estado seleccionado del elemento cambia. Si el elemento está actualmente seleccionado, dejará de estarlo y viceversa. El argumento valor es el nuevo estado seleccionado (es decir, verdadero o falso). No llame a setSelected() en itemChange() ya que se entrega esta notificación; en su lugar, puede devolver el nuevo estado seleccionado desde itemChange(). |
QGraphicsItem::ItemSelectedHasChanged | 14 | El estado seleccionado del elemento ha cambiado. El argumento value es el nuevo estado seleccionado (es decir, verdadero o falso). No llame a setSelected() en itemChange() ya que se entrega esta notificación. El valor devuelto se ignora. |
QGraphicsItem::ItemVisibleChange | 2 | El estado visible del elemento cambia. Si el elemento es actualmente visible, se convertirá en invisible, y vice verca. El argumento valor es el nuevo estado visible (es decir, verdadero o falso). No llame a setVisible() en itemChange() ya que se entrega esta notificación; en su lugar, puede devolver el nuevo estado visible desde itemChange(). |
QGraphicsItem::ItemVisibleHasChanged | 12 | El estado visible del elemento ha cambiado. El argumento value es el nuevo estado visible (es decir, verdadero o falso). No llame a setVisible() en itemChange() ya que se entrega esta notificación. El valor devuelto se ignora. |
QGraphicsItem::ItemParentChange | 5 | El elemento padre cambia. El argumento value es el nuevo elemento padre (es decir, un puntero QGraphicsItem ). No llame a setParentItem() en itemChange() mientras se entrega esta notificación; en su lugar, puede devolver el nuevo elemento padre desde itemChange(). |
QGraphicsItem::ItemParentHasChanged | 15 | El elemento padre ha cambiado. El argumento value es el nuevo padre (es decir, un puntero a un QGraphicsItem). No llame a setParentItem() en itemChange() ya que se entrega esta notificación. El valor de retorno se ignora. |
QGraphicsItem::ItemChildAddedChange | 6 | Se añade un elemento hijo a este elemento. El argumento de valor es el nuevo elemento hijo (es decir, un puntero a QGraphicsItem ). No pase este elemento a la función setParentItem() de ningún elemento mientras se envía esta notificación. El valor de retorno no se utiliza; no se puede ajustar nada en esta notificación. Tenga en cuenta que el nuevo hijo puede no estar completamente construido cuando se envía esta notificación; llamar a funciones puramente virtuales en el hijo puede provocar un fallo. |
QGraphicsItem::ItemChildRemovedChange | 7 | Se elimina un hijo de este elemento. El argumento de valor es el elemento hijo que se va a eliminar (es decir, un puntero QGraphicsItem ). El valor de retorno no se utiliza; no se puede ajustar nada en esta notificación. |
QGraphicsItem::ItemSceneChange | 11 | El elemento se mueve a una nueva escena. Esta notificación también se envía cuando el elemento se añade a su escena inicial y cuando se elimina. El argumento scene() del elemento es la escena antigua, o nullptr si el elemento aún no se ha añadido a una escena. El argumento valor es la nueva escena (es decir, un puntero QGraphicsScene ), o nullptr si el elemento se elimina de una escena. No anule este cambio pasando este elemento a QGraphicsScene::addItem() cuando se envíe esta notificación; en su lugar, puede devolver la nueva escena desde itemChange(). Utiliza esta función con precaución; objetar un cambio de escena puede llevar rápidamente a una recursión no deseada. |
QGraphicsItem::ItemSceneHasChanged | 16 | La escena del elemento ha cambiado. La scene() del elemento es la nueva escena. Esta notificación también se envía cuando el elemento se añade a su escena inicial y cuando se elimina.El argumento value es la nueva escena (es decir, un puntero a QGraphicsScene). No llame a setScene() en itemChange() ya que se envía esta notificación. El valor devuelto se ignora. |
QGraphicsItem::ItemCursorChange | 17 | El cursor del elemento cambia. El argumento de valor es el nuevo cursor (es decir, un QCursor). No llame a setCursor() en itemChange() mientras se entrega esta notificación. En su lugar, puede devolver un nuevo cursor desde itemChange(). |
QGraphicsItem::ItemCursorHasChanged | 18 | El cursor del elemento ha cambiado. El argumento de valor es el nuevo cursor (es decir, un QCursor). No llame a setCursor() mientras se entrega esta notificación. El valor de retorno se ignora. |
QGraphicsItem::ItemToolTipChange | 19 | La información sobre herramientas del elemento ha cambiado. El argumento de valor es la nueva información sobre herramientas (es decir, un QToolTip). No llame a setToolTip() en itemChange() mientras se entrega esta notificación. En su lugar, puede devolver una nueva información sobre herramientas desde itemChange(). |
QGraphicsItem::ItemToolTipHasChanged | 20 | La información sobre herramientas del elemento ha cambiado. El argumento de valor es la nueva información sobre herramientas (es decir, un QToolTip). No llame a setToolTip() mientras se entrega esta notificación. El valor de retorno se ignora. |
QGraphicsItem::ItemFlagsChange | 21 | Las banderas del elemento han cambiado. El argumento de valor son las nuevas banderas (es decir, un quint32). No llame a setFlags() en itemChange() mientras se entrega esta notificación. En su lugar, puede devolver las nuevas banderas desde itemChange(). |
QGraphicsItem::ItemFlagsHaveChanged | 22 | Las banderas del elemento han cambiado. El argumento value son las nuevas banderas (es decir, un quint32). No llame a setFlags() en itemChange() ya que esta notificación se entrega. El valor de retorno se ignora. |
QGraphicsItem::ItemZValueChange | 23 | El valor Z del elemento cambia. El argumento value es el nuevo valor Z (es decir, un double). No llame a setZValue() en itemChange() mientras se entrega esta notificación. En su lugar, puede devolver un nuevo valor Z desde itemChange(). |
QGraphicsItem::ItemZValueHasChanged | 24 | El valor Z del elemento ha cambiado. El argumento valor es el nuevo valor Z (es decir, un doble). No llame a setZValue() mientras se entrega esta notificación. El valor de retorno se ignora. |
QGraphicsItem::ItemOpacityChange | 25 | La opacidad del elemento cambia. El argumento de valor es la nueva opacidad (es decir, un double). No llame a setOpacity() en itemChange() mientras se entrega esta notificación. En su lugar, puede devolver una nueva opacidad desde itemChange(). |
QGraphicsItem::ItemOpacityHasChanged | 26 | La opacidad del elemento ha cambiado. El argumento de valor es la nueva opacidad (es decir, un doble). No llame a setOpacity() mientras se entrega esta notificación. El valor devuelto se ignora. |
QGraphicsItem::ItemScenePositionHasChanged | 27 | La posición de escena del elemento ha cambiado. Esta notificación se envía si la bandera ItemSendsScenePositionChanges está activada, y después de que la posición de escena del elemento haya cambiado (es decir, la posición o transformación del propio elemento o la posición o transformación de cualquier ancestro haya cambiado). El argumento value es la nueva posición de escena (igual que scenePos()), y QGraphicsItem ignora el valor de retorno de esta notificación (es decir, una notificación de sólo lectura). |
enum QGraphicsItem::GraphicsItemFlag
flags QGraphicsItem::GraphicsItemFlags
Este enum describe diferentes banderas que puedes establecer en un elemento para activar diferentes características en el comportamiento del elemento.
Todas las banderas están desactivadas por defecto.
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::ItemIsMovable | 0x1 | El elemento soporta el movimiento interactivo con el ratón. Al hacer clic en el elemento y arrastrarlo, el elemento se moverá junto con el cursor del ratón. Si el elemento tiene hijos, todos los hijos también se mueven. Si el elemento forma parte de una selección, todos los elementos seleccionados también se mueven. Esta función se proporciona por conveniencia a través de la implementación base de los manejadores de eventos de ratón de QGraphicsItem. |
QGraphicsItem::ItemIsSelectable | 0x2 | El elemento admite la selección. Al activar esta función, setSelected() podrá alternar la selección del elemento. También permitirá que el elemento se seleccione automáticamente como resultado de una llamada a QGraphicsScene::setSelectionArea(), haciendo clic en un elemento o utilizando la selección por banda elástica en QGraphicsView. |
QGraphicsItem::ItemIsFocusable | 0x4 | El elemento admite el enfoque de entrada de teclado (es decir, es un elemento de entrada). Habilitando esta bandera permitirá que el elemento acepte el foco, lo que de nuevo permite la entrega de eventos de teclado a QGraphicsItem::keyPressEvent() y QGraphicsItem::keyReleaseEvent(). |
QGraphicsItem::ItemClipsToShape | 0x8 | El elemento se ajusta a su propia forma. El elemento no puede dibujar o recibir eventos de ratón, tableta, arrastrar y soltar o hover fuera de su forma. Está desactivado por defecto. Este comportamiento es aplicado por QGraphicsView::drawItems() o QGraphicsScene::drawItems(). Esta bandera se introdujo en Qt 4.3. |
QGraphicsItem::ItemClipsChildrenToShape | 0x10 | El elemento recorta la pintura de todos sus descendientes a su propia forma. Los elementos que son hijos directos o indirectos de este elemento no pueden dibujar fuera de la forma de este elemento. Por defecto, esta bandera está desactivada; los hijos pueden dibujar en cualquier lugar. Este comportamiento es aplicado por QGraphicsView::drawItems() o QGraphicsScene::drawItems(). Esta opción se introdujo en Qt 4.3. |
Nota: Esta bandera es similar a ItemContainsChildrenInShape pero además refuerza la contención recortando los hijos.
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::ItemIgnoresTransformations | 0x20 | El elemento ignora las transformaciones heredadas (es decir, su posición sigue anclada a su padre, pero se ignoran las transformaciones de rotación, zoom o cizallamiento del padre o de la vista). Esta opción es útil para mantener los elementos de etiquetas de texto horizontales y sin escalar, de modo que sigan siendo legibles si la vista se transforma. Cuando se activa, la geometría de la vista del elemento y la geometría de la escena se mantienen por separado. Debes llamar a deviceTransform() para asignar coordenadas y detectar colisiones en la vista. Por defecto, esta bandera está desactivada. Esta opción se introdujo en Qt 4.3. |
Nota: Con esta opción activada puedes escalar el propio elemento, y esa transformación de escala influirá en los elementos hijos.
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::ItemIgnoresParentOpacity | 0x40 | El elemento ignora la opacidad de su padre. La opacidad efectiva del elemento es la misma que la suya propia; no se combina con la opacidad de su padre. Esta opción permite al elemento mantener su opacidad absoluta incluso si el elemento padre es semitransparente. Esta bandera se introdujo en Qt 4.5. |
QGraphicsItem::ItemDoesntPropagateOpacityToChildren | 0x80 | El elemento no propaga su opacidad a sus hijos. Esta opción permite crear un elemento semitransparente que no afecta a la opacidad de sus hijos. Esta bandera se introdujo en Qt 4.5. |
QGraphicsItem::ItemStacksBehindParent | 0x100 | El elemento se apila detrás de su padre. Por defecto, los elementos hijos se apilan encima del elemento padre. Si se activa esta opción, el elemento hijo se apilará detrás de su padre. Esta opción es útil para efectos de sombra y para objetos decorativos que siguen la geometría del elemento padre sin dibujarse encima de él. Esta opción se introdujo en Qt 4.5. |
QGraphicsItem::ItemUsesExtendedStyleOption | 0x200 | El elemento hace uso de exposedRect en QStyleOptionGraphicsItem. Por defecto, exposedRect se inicializa con boundingRect() del elemento. Puede activar esta opción para que las opciones de estilo se configuren con valores más precisos. Utilice QStyleOptionGraphicsItem::levelOfDetailFromTransform() si necesita un valor más alto. Esta bandera se introdujo en Qt 4.6. |
QGraphicsItem::ItemHasNoContents | 0x400 | El elemento no pinta nada (es decir, llamar a paint() sobre el elemento no tiene ningún efecto). Deberías establecer esta bandera en elementos que no necesitan ser pintados para asegurarte de que la Vista Gráfica evita preparaciones de pintado innecesarias. Este indicador se introdujo en Qt 4.6. |
QGraphicsItem::ItemSendsGeometryChanges | 0x800 | El elemento habilita las notificaciones itemChange() para ItemPositionChange, ItemPositionHasChanged, ItemTransformChange, ItemTransformHasChanged, ItemRotationChange, ItemRotationHasChanged, ItemScaleChange, ItemScaleHasChanged, ItemTransformOriginPointChange, y ItemTransformOriginPointHasChanged. Por razones de rendimiento, estas notificaciones están desactivadas por defecto. Debe activar esta opción para recibir notificaciones de cambios de posición y transformación. Este indicador se introdujo en Qt 4.6. |
QGraphicsItem::ItemAcceptsInputMethod | 0x1000 | El elemento es compatible con los métodos de entrada utilizados habitualmente en los idiomas asiáticos. Esta opción se introdujo en Qt 4.6. |
QGraphicsItem::ItemNegativeZStacksBehindParent | 0x2000 | El elemento se apila automáticamente detrás de su padre si su valor z es negativo. Esta opción permite a setZValue() activar ItemStacksBehindParent. Esta bandera se introdujo en Qt 4.6. |
QGraphicsItem::ItemIsPanel | 0x4000 | El elemento es un panel. Un panel proporciona activación y manejo de foco contenido. Sólo puede haber un panel activo a la vez (véase QGraphicsItem::isActive()). Cuando no hay ningún panel activo, QGraphicsScene activa todos los elementos que no son paneles. Los elementos de ventana (es decir, QGraphicsItem::isWindow() devuelve true) son paneles. Esta bandera se introdujo en Qt 4.6. |
QGraphicsItem::ItemSendsScenePositionChanges | 0x10000 | El elemento activa las notificaciones de itemChange() para ItemScenePositionHasChanged. Por razones de rendimiento, estas notificaciones están desactivadas por defecto. Debes habilitar esta bandera para recibir notificaciones de cambios de posición de escena. Esta bandera se introdujo en Qt 4.6. |
QGraphicsItem::ItemContainsChildrenInShape | 0x80000 | Esta bandera indica que todos los hijos directos o indirectos del ítem sólo dibujan dentro de la forma del ítem. A diferencia de ItemClipsChildrenToShape, esta restricción no se aplica. Define ItemContainsChildrenInShape cuando te asegures manualmente de que el dibujo está vinculado a la forma del elemento y quieras evitar el coste asociado a la aplicación del clip. Esta opción permite un dibujo y una detección de colisiones más eficientes. Esta opción está desactivada por defecto. |
Nota: Si tanto este indicador como ItemClipsChildrenToShape están activados, se aplicará el clip. Esto es equivalente a establecer ItemClipsChildrenToShape.
Esta bandera se introdujo en Qt 5.4.
El tipo GraphicsItemFlags es un typedef para QFlags<GraphicsItemFlag>. Almacena una combinación OR de valores GraphicsItemFlag.
enum QGraphicsItem::PanelModality
Este enum especifica el comportamiento de un panel modal. Un panel modal es aquel que bloquea la entrada a otros paneles. Tenga en cuenta que los elementos que son hijos de un panel modal no se bloquean.
Los valores son:
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::NonModal | 0 | El panel no es modal y no bloquea la entrada a otros paneles. Este es el valor por defecto para los paneles. |
QGraphicsItem::PanelModal | 1 | El panel es modal a una única jerarquía de elementos y bloquea la entrada a su panel padre, a todos los paneles abuelos y a todos los hermanos de sus paneles padre y abuelos. |
QGraphicsItem::SceneModal | 2 | La ventana es modal para toda la escena y bloquea la entrada a todos los paneles. |
Véase también QGraphicsItem::setPanelModality(), QGraphicsItem::panelModality(), y QGraphicsItem::ItemIsPanel.
[anonymous] enum
El valor devuelto por la función virtual type() en las clases de elementos gráficos estándar de Qt. Todas estas clases de elementos gráficos estándar en Qt están asociadas con un valor único para Type, por ejemplo, el valor devuelto por QGraphicsPathItem::type() es 2.
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItem::Type | 1 | class QGraphicsPathItem : public QAbstractGraphicsShapeItem { public: enum { Type = 2 }; int type() const override { return Type; } ... }; |
QGraphicsItem::UserType | 65536 | El valor más bajo devuelto por la función virtual type() para subclases personalizadas de QGraphicsItem.class CustomItem : public QGraphicsItem { public: enum { Type = UserType + 1 }; int type() const override { // Enable the use of qgraphicsitem_cast with this item. return Type; } ... }; |
Documentación de la función miembro
[explicit] QGraphicsItem::QGraphicsItem(QGraphicsItem *parent = nullptr)
Construye un QGraphicsItem con el elemento parent dado. No modifica el objeto padre devuelto por QObject::parent().
Si parent es nullptr, puedes añadir el elemento a una escena llamando a QGraphicsScene::addItem(). El elemento se convertirá entonces en un elemento de nivel superior.
Véase también QGraphicsScene::addItem() y setParentItem().
[virtual noexcept] QGraphicsItem::~QGraphicsItem()
Destruye el QGraphicsItem y todos sus hijos. Si este ítem está actualmente asociado a una escena, el ítem será eliminado de la escena antes de ser borrado.
Nota: Es más eficaz eliminar el elemento de QGraphicsScene antes de destruirlo.
bool QGraphicsItem::acceptDrops() const
Devuelve true si este elemento puede aceptar eventos de arrastrar y soltar; en caso contrario, devuelve false. Por defecto, los ítems no aceptan eventos de arrastrar y soltar; los ítems son transparentes al arrastrar y soltar.
Véase también setAcceptDrops().
bool QGraphicsItem::acceptHoverEvents() const
Devuelve true si un elemento acepta eventos hover (QGraphicsSceneHoverEvent); en caso contrario, devuelve false. Por defecto, los elementos no aceptan eventos hover.
Véase también setAcceptHoverEvents() y setAcceptedMouseButtons().
bool QGraphicsItem::acceptTouchEvents() const
Devuelve true si un elemento acepta touch events; en caso contrario, devuelve false. Por defecto, los elementos no aceptan eventos táctiles.
Véase también setAcceptTouchEvents().
Qt::MouseButtons QGraphicsItem::acceptedMouseButtons() const
Devuelve los botones del ratón para los que este elemento acepta eventos de ratón. Por defecto, se aceptan todos los botones del ratón.
Si un elemento acepta un botón del ratón, se convertirá en el elemento receptor del ratón cuando se produzca un evento de pulsación del ratón para ese botón. Sin embargo, si el elemento no acepta el botón, QGraphicsScene reenviará los eventos de ratón al primer elemento situado debajo que sí lo acepte.
Véase también setAcceptedMouseButtons() y mousePressEvent().
[virtual] void QGraphicsItem::advance(int phase)
Esta función virtual es llamada dos veces para todos los ítems por la ranura QGraphicsScene::advance(). En la primera fase, todos los ítems son llamados con phase == 0, indicando que los ítems en la escena están a punto de avanzar, y luego todos los ítems son llamados con phase == 1. Reimplemente esta función para actualizar su elemento si necesita una animación simple controlada por la escena.
La implementación por defecto no hace nada.
Esta función está pensada para animaciones. Una alternativa es heredar múltiples funciones de QObject y QGraphicsItem y utilizar la estructura de animación.
Ver también QGraphicsScene::advance() y QTimeLine.
[pure virtual] QRectF QGraphicsItem::boundingRect() const
Esta función virtual pura define los límites exteriores del elemento como un rectángulo; toda pintura debe restringirse al interior del rectángulo delimitador de un elemento. QGraphicsView utiliza esto para determinar si el elemento requiere ser redibujado.
Aunque la forma del elemento puede ser arbitraria, el rectángulo delimitador es siempre rectangular y no se ve afectado por la transformación del elemento.
Si quieres cambiar el rectángulo delimitador del elemento, primero debes llamar a prepareGeometryChange(). Esto notifica a la escena del cambio inminente, para que pueda actualizar su índice de geometría del elemento; de lo contrario, la escena no será consciente de la nueva geometría del elemento, y los resultados son indefinidos (por lo general, los artefactos de renderizado se dejan dentro de la vista).
Reimplemente esta función para permitir que QGraphicsView determine qué partes del widget, si las hay, necesitan ser redibujadas.
Nota: Para las formas que pintan un contorno / trazo, es importante incluir la mitad del ancho del lápiz en el rectángulo delimitador. Sin embargo, no es necesario compensar el antialiasing.
Ejemplo:
QRectF CircleItem::boundingRect() const { qreal penWidth = 1; return QRectF(-radius - penWidth / 2, -radius - penWidth / 2, diameter + penWidth, diameter + penWidth); }
Véase también boundingRegion(), shape(), contains(), El sistema de coordenadas de la vista gráfica y prepareGeometryChange().
QRegion QGraphicsItem::boundingRegion(const QTransform &itemToDeviceTransform) const
Devuelve la región delimitadora de este elemento. El espacio de coordenadas de la región devuelta depende de itemToDeviceTransform. Si pasa una identidad QTransform como parámetro, esta función devolverá una región de coordenadas local.
La región delimitadora describe un contorno aproximado del contenido visual del elemento. Aunque su cálculo es costoso, también es más preciso que boundingRect(), y puede ayudar a evitar repintados innecesarios cuando se actualiza un elemento. Esto es particularmente eficaz para elementos finos (por ejemplo, líneas o polígonos simples). Puede ajustar la granularidad de la región delimitadora llamando a setBoundingRegionGranularity(). La granularidad por defecto es 0, en la que la región de delimitación del elemento es la misma que su rectángulo de delimitación.
itemToDeviceTransform es la transformación de las coordenadas del elemento a las coordenadas del dispositivo. Si desea que esta función devuelva un QRegion en coordenadas de escena, puede pasar sceneTransform() como argumento.
Véase también boundingRegionGranularity().
qreal QGraphicsItem::boundingRegionGranularity() const
Devuelve la granularidad de la región delimitadora del elemento; un valor entre 0 y 1. El valor predeterminado es 0 (es decir, la granularidad más baja, en la que la región delimitadora corresponde al rectángulo delimitador del elemento).
Véase también setBoundingRegionGranularity().
QGraphicsItem::CacheMode QGraphicsItem::cacheMode() const
Devuelve el modo de caché de este elemento. El modo por defecto es NoCache (es decir, la caché está desactivada y todo el pintado es inmediato).
Véase también setCacheMode().
QList<QGraphicsItem *> QGraphicsItem::childItems() const
Devuelve una lista de los hijos de este elemento.
Los elementos se ordenan por orden de apilamiento. Esto tiene en cuenta tanto el orden de inserción de los elementos como sus valores Z.
Véase también setParentItem(), zValue() y Sorting.
QRectF QGraphicsItem::childrenBoundingRect() const
Devuelve el rectángulo delimitador de los descendientes de este elemento (es decir, sus hijos, sus hijos, etc.) en coordenadas locales. El rectángulo contendrá a todos los descendientes después de haber sido mapeados a coordenadas locales. Si el elemento no tiene hijos, esta función devuelve un QRectF vacío.
Esto no incluye el propio rectángulo delimitador de este elemento; sólo devuelve el rectángulo delimitador acumulado de sus descendientes. Si necesita incluir el recto delimitador de este elemento, puede añadir boundingRect() a childrenBoundingRect() utilizando QRectF::operator|().
Esta función es lineal en complejidad; determina el tamaño del rectángulo delimitador devuelto iterando a través de todos los descendientes.
Véase también boundingRect() y sceneBoundingRect().
void QGraphicsItem::clearFocus()
Toma el foco de entrada de teclado del elemento.
Si tiene el foco, se envía un focus out event a este elemento para indicarle que está a punto de perder el foco.
Sólo los elementos que establecen la bandera ItemIsFocusable, o los widgets que establecen una política de foco apropiada, pueden aceptar el foco del teclado.
Véase también setFocus(), hasFocus(), y QGraphicsWidget::focusPolicy.
QPainterPath QGraphicsItem::clipPath() const
Devuelve la ruta de recorte de este elemento, o un QPainterPath vacío si este elemento no está recortado. La ruta de recorte limita la apariencia y la interacción del elemento (es decir, restringe el área en la que el elemento puede dibujar y recibir eventos).
Puede activar el recorte activando los indicadores ItemClipsToShape o ItemClipsChildrenToShape. La ruta de recorte del elemento se calcula intersecando todas las formas de los ancestros de recorte. Si el elemento establece ItemClipsToShape, el recorte final se intersecta con la propia forma del elemento.
Nota: Recortar introduce una penalización de rendimiento para todos los elementos implicados; en general, deberías evitar utilizar el recorte si puedes (por ejemplo, si tus elementos siempre se dibujan dentro de los límites de boundingRect() o shape(), el recorte no es necesario).
Véase también isClipped(), shape() y setFlags().
[virtual] bool QGraphicsItem::collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Devuelve true si este elemento colisiona con other; en caso contrario devuelve false.
mode se aplica a other, y la forma o rectángulo resultante se compara con la forma de este elemento. El valor por defecto para mode es Qt::IntersectsItemShape; other colisiona con este elemento si interseca, contiene o está contenido por la forma de este elemento (ver Qt::ItemSelectionMode para más detalles).
La implementación por defecto se basa en la intersección de formas, y llama a shape() en ambos elementos. Debido a que la complejidad de la intersección arbitraria forma-forma crece con un orden de magnitud cuando las formas son complejas, esta operación puede consumir mucho tiempo. Tiene la opción de reimplementar esta función en una subclase de QGraphicsItem para proporcionar un algoritmo personalizado. Esto le permite hacer uso de las restricciones naturales en las formas de sus propios elementos, con el fin de mejorar el rendimiento de la detección de colisiones. Por ejemplo, la colisión de dos objetos perfectamente circulares sin transformar puede determinarse muy eficazmente comparando sus posiciones y radios.
Tenga en cuenta que cuando reimplemente esta función y llame a shape() o boundingRect() en other, las coordenadas devueltas deben ser mapeadas al sistema de coordenadas de este ítem antes de que cualquier intersección pueda tener lugar.
Véase también contains() y shape().
[virtual] bool QGraphicsItem::collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Devuelve true si este elemento colisiona con path.
La colisión viene determinada por mode. El valor por defecto para mode es Qt::IntersectsItemShape; path colisiona con este elemento si interseca, contiene o está contenido por la forma de este elemento.
Tenga en cuenta que esta función comprueba si la forma o el rectángulo delimitador del elemento (dependiendo de mode) está contenido en path, y no si path está contenido en la forma o el rectángulo delimitador del elemento.
Véase también collidesWithItem(), contains(), y shape().
QList<QGraphicsItem *> QGraphicsItem::collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
Devuelve una lista de todos los elementos que colisionan con este elemento.
La forma en que se detectan las colisiones se determina aplicando mode a los elementos que se comparan con este elemento, es decir, la forma o el rectángulo delimitador de cada elemento se comprueba con la forma de este elemento. El valor por defecto de mode es Qt::IntersectsItemShape.
Véase también collidesWithItem().
QGraphicsItem *QGraphicsItem::commonAncestorItem(const QGraphicsItem *other) const
Devuelve el elemento ancestro común más cercano de este elemento y other, o nullptr si other es nullptr, o no hay ancestro común.
Véase también isAncestorOf().
[virtual] bool QGraphicsItem::contains(const QPointF &point) const
Devuelve true si este elemento contiene point, que está en coordenadas locales; en caso contrario, devuelve false. Se llama más a menudo desde QGraphicsView para determinar qué elemento está bajo el cursor, y por esa razón, la implementación de esta función debería ser lo más ligera posible.
Por defecto, esta función llama a shape(), pero se puede reimplementar en una subclase para proporcionar una implementación (quizás más eficiente).
Véase también shape(), boundingRect(), y collidesWithPath().
[virtual protected] void QGraphicsItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Este manejador de eventos puede ser reimplementado en una subclase para procesar eventos del menú contextual. El parámetro event contiene detalles sobre el evento a tratar.
Si ignoras el evento (es decir, llamando a QEvent::ignore()), event se propagará a cualquier elemento que se encuentre debajo de este elemento. Si ningún elemento acepta el evento, será ignorado por la escena y se propagará a la vista.
Es habitual abrir un QMenu en respuesta a la recepción de un evento de menú contextual. Ejemplo:
void CustomItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { QMenu menu; QAction *removeAction = menu.addAction("Remove"); QAction *markAction = menu.addAction("Mark"); QAction *selectedAction = menu.exec(event->screenPos()); // ... }
La implementación por defecto ignora el evento.
Véase también sceneEvent().
QCursor QGraphicsItem::cursor() const
Devuelve la forma actual del cursor para el elemento. El cursor del ratón adoptará esta forma cuando esté sobre este elemento. Consulte list of predefined cursor objects para ver una serie de formas útiles.
Un elemento del editor puede querer usar un cursor en forma de I:
item->setCursor(Qt::IBeamCursor);
Si no se ha establecido ningún cursor, se utilizará el cursor del elemento situado debajo.
Véase también setCursor(), hasCursor(), unsetCursor(), QWidget::cursor, y QGuiApplication::overrideCursor().
QVariant QGraphicsItem::data(int key) const
Devuelve los datos personalizados de este elemento para la clave key como QVariant.
Los datos personalizados del elemento son útiles para almacenar propiedades arbitrarias en cualquier elemento. Ejemplo:
static const int ObjectName = 0; QGraphicsItem *item = scene.itemAt(100, 50); if (item->data(ObjectName).toString().isEmpty()) { if (qgraphicsitem_cast<ButtonItem *>(item)) item->setData(ObjectName, "Button"); }
Qt no utiliza esta característica para almacenar datos; se proporciona únicamente para la comodidad del usuario.
Véase también setData().
QTransform QGraphicsItem::deviceTransform(const QTransform &viewportTransform) const
Devuelve la matriz de transformación de dispositivo de este elemento, utilizando viewportTransform para asignar coordenadas de escena a coordenadas de dispositivo. Esta matriz se puede utilizar para asignar coordenadas y formas geométricas desde el sistema de coordenadas local de este elemento al sistema de coordenadas de la ventana gráfica (o de cualquier dispositivo). Para asignar coordenadas desde la ventana gráfica, primero debe invertir la matriz devuelta.
Ejemplo:
QGraphicsRectItem rect; rect.setPos(100, 100); rect.deviceTransform(view->viewportTransform()).map(QPointF(0, 0)); // returns the item's (0, 0) point in view's viewport coordinates rect.deviceTransform(view->viewportTransform()).inverted().map(QPointF(100, 100)); // returns view's viewport's (100, 100) coordinate in item coordinates
Esta función es la misma que combinar la transformada de escena de este elemento con la transformada de la vista, pero también entiende la bandera ItemIgnoresTransformations. La transformada de dispositivo puede utilizarse para realizar un mapeado de coordenadas preciso (y detección de colisiones) para elementos no transformables.
Ver también transform(), setTransform(), scenePos(), El sistema de coordenadas de la vista gráfica, y itemTransform().
[virtual protected] void QGraphicsItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de arrastre de este ítem. Los eventos de arrastre se generan cuando el cursor entra en el área del elemento.
Al aceptar el evento (es decir, llamando a QEvent::accept()), el ítem aceptará eventos drop, además de recibir drag move y drag leave. En caso contrario, el evento será ignorado y se propagará al elemento situado debajo. Si el evento es aceptado, el elemento recibirá un evento de movimiento de arrastre antes de que el control vuelva al bucle de eventos.
Una implementación común de dragEnterEvent acepta o ignora event dependiendo de los datos mime asociados en event. Ejemplo:
CustomItem::CustomItem() { setAcceptDrops(true); ... } void CustomItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event) { event->setAccepted(event->mimeData()->hasFormat("text/plain")); }
Los elementos no reciben eventos de arrastrar y soltar por defecto; para activar esta función, llame a setAcceptDrops(true).
La implementación por defecto no hace nada.
Véase también dropEvent(), dragMoveEvent(), y dragLeaveEvent().
[virtual protected] void QGraphicsItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de arrastre para este ítem. Los eventos drag leave se generan cuando el cursor abandona el área del ítem. La mayoría de las veces no necesitarás reimplementar esta función, pero puede ser útil para restablecer el estado de tu elemento (por ejemplo, resaltado).
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
Los elementos no reciben eventos de arrastrar y soltar por defecto; para activar esta función, llame a setAcceptDrops(true).
La implementación por defecto no hace nada.
Véase también dragEnterEvent(), dropEvent(), y dragMoveEvent().
[virtual protected] void QGraphicsItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de movimiento de arrastre para este ítem. Los eventos de arrastre se generan cuando el cursor se mueve dentro del área del ítem. La mayoría de las veces no necesitarás reimplementar esta función; se utiliza para indicar que sólo partes del ítem pueden aceptar drops.
Llamar a QEvent::ignore() o QEvent::accept() en event cambia si el ítem aceptará o no drops en la posición del evento. Por defecto, event es aceptado, indicando que el ítem permite drops en la posición especificada.
Los ítems no reciben eventos de arrastrar y soltar por defecto; para activar esta característica, llama a setAcceptDrops(true).
La implementación por defecto no hace nada.
Véase también dropEvent(), dragEnterEvent(), y dragLeaveEvent().
[virtual protected] void QGraphicsItem::dropEvent(QGraphicsSceneDragDropEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de caída para este ítem. Los elementos sólo pueden recibir eventos de soltar si el último evento de movimiento de arrastre fue aceptado.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
Los ítems no reciben eventos de arrastrar y soltar por defecto; para activar esta característica, llama a setAcceptDrops(true).
La implementación por defecto no hace nada.
Véase también dragEnterEvent(), dragMoveEvent(), y dragLeaveEvent().
qreal QGraphicsItem::effectiveOpacity() const
Devuelve la opacidad efectiva de este elemento, que está entre 0.0 (transparente) y 1.0 (opaco). Este valor es una combinación de la opacidad local de este elemento, y las opacidades de sus padres y ancestros. La opacidad efectiva decide cómo se representa el elemento.
Véase también opacity(), setOpacity(), paint(), ItemIgnoresParentOpacity, y ItemDoesntPropagateOpacityToChildren.
void QGraphicsItem::ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50)
Si este elemento forma parte de una escena que se visualiza mediante QGraphicsView, esta función intentará desplazar la vista para asegurarse de que rect es visible dentro de la ventana gráfica de la vista. Si rect es un rectángulo nulo (por defecto), QGraphicsItem será por defecto el rectángulo delimitador del elemento. xmargin y ymargin son el número de píxeles que la vista debe utilizar para los márgenes.
Si no se puede alcanzar el rectángulo especificado, el contenido se desplaza a la posición válida más cercana.
Si este elemento no se visualiza en QGraphicsView, esta función no hace nada.
Véase también QGraphicsView::ensureVisible().
void QGraphicsItem::ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50)
Esta función es equivalente a llamar a ensureVisible(QRectF(x, y, w, h), xmargin, ymargin).
bool QGraphicsItem::filtersChildEvents() const
Devuelve true si este elemento filtra los eventos hijos (es decir, todos los eventos destinados a cualquiera de sus hijos se envían en su lugar a este elemento); de lo contrario, se devuelve false.
El valor por defecto es false; los eventos hijos no se filtran.
Véase también setFiltersChildEvents().
QGraphicsItem::GraphicsItemFlags QGraphicsItem::flags() const
Devuelve las banderas de este elemento. Las banderas describen qué características configurables del elemento están habilitadas y cuáles no. Por ejemplo, si las banderas incluyen ItemIsFocusable, el elemento puede aceptar el foco de entrada.
Por defecto, no se activa ninguna bandera.
Véase también setFlags() y setFlag().
[virtual protected] void QGraphicsItem::focusInEvent(QFocusEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir foco en eventos para este ítem. La implementación por defecto llama a ensureVisible().
Ver también focusOutEvent(), sceneEvent(), y setFocus().
QGraphicsItem *QGraphicsItem::focusItem() const
Si este elemento, un hijo o descendiente de este elemento tiene actualmente el foco de entrada, esta función devolverá un puntero a ese elemento. Si ningún descendiente tiene el foco de entrada, se devuelve nullptr.
Véase también hasFocus(), setFocus() y QWidget::focusWidget().
[virtual protected] void QGraphicsItem::focusOutEvent(QFocusEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de focus out para este ítem. La implementación por defecto no hace nada.
Ver también focusInEvent(), sceneEvent(), y setFocus().
QGraphicsItem *QGraphicsItem::focusProxy() const
Devuelve el proxy de enfoque de este elemento, o nullptr si este elemento no tiene proxy de enfoque.
Véase también setFocusProxy(), setFocus() y hasFocus().
void QGraphicsItem::grabKeyboard()
Toma la entrada del teclado.
El elemento recibirá todas las entradas de teclado de la escena hasta que se produzca uno de los siguientes eventos:
- El elemento se vuelve invisible
- El elemento se elimina de la escena
- El elemento se elimina
- El elemento llama a ungrabKeyboard()
- Otro elemento llama a grabKeyboard(); el elemento recuperará el control del teclado cuando el otro elemento llame a ungrabKeyboard().
Cuando un elemento recupera el control del teclado, recibe un evento QEvent::GrabKeyboard. Cuando pierde el control del teclado, recibe un evento QEvent::UngrabKeyboard. Estos eventos se pueden utilizar para detectar cuando un elemento obtiene o pierde el control del teclado por otros medios que no sean la obtención del foco de entrada.
Casi nunca es necesario agarrar explícitamente el teclado en Qt, ya que Qt lo agarra y lo suelta de forma sensible. En particular, Qt agarra el teclado cuando tu elemento obtiene el foco de entrada, y lo libera cuando tu elemento pierde el foco de entrada, o cuando el elemento se oculta.
Ten en cuenta que sólo los elementos visibles pueden tomar la entrada del teclado. Llamar a grabKeyboard() en un elemento invisible no tiene ningún efecto.
Los eventos de teclado no se ven afectados.
Véase también ungrabKeyboard(), grabMouse(), y setFocus().
void QGraphicsItem::grabMouse()
Toma la entrada del ratón.
Este elemento recibirá todos los eventos de ratón de la escena hasta que ocurra alguno de los siguientes eventos:
- El elemento se vuelve invisible
- El elemento se elimina de la escena
- El elemento se elimina
- El ítem llama a ungrabMouse()
- Otro elemento llama a grabMouse(); el elemento recuperará el control del ratón cuando el otro elemento llame a ungrabMouse().
Cuando un elemento recupera el agarre del ratón, recibe un evento QEvent::GrabMouse. Cuando pierde el agarre del ratón, recibe un evento QEvent::UngrabMouse. Estos eventos pueden ser usados para detectar cuando un ítem gana o pierde el agarre del ratón a través de otros medios que no sean la recepción de eventos del botón del ratón.
Casi nunca es necesario agarrar explícitamente el ratón en Qt, ya que Qt lo agarra y lo suelta de forma sensible. En particular, Qt agarra el ratón cuando pulsas un botón del ratón, y lo mantiene agarrado hasta que sueltas el último botón del ratón. Además, los widgets de Qt::Popup llaman implícitamente a grabMouse() cuando se muestran, y a ungrabMouse() cuando se ocultan.
Ten en cuenta que sólo los elementos visibles pueden capturar la entrada del ratón. Llamar a grabMouse() en un elemento invisible no tiene ningún efecto.
Los eventos de teclado no se ven afectados.
Véase también QGraphicsScene::mouseGrabberItem(), ungrabMouse(), y grabKeyboard().
QGraphicsEffect *QGraphicsItem::graphicsEffect() const
Devuelve un puntero al efecto de este elemento si lo tiene; en caso contrario nullptr.
Véase también setGraphicsEffect().
QGraphicsItemGroup *QGraphicsItem::group() const
Devuelve un puntero al grupo de elementos de este elemento, o nullptr si este elemento no es miembro de ningún grupo.
Véase también setGroup(), QGraphicsItemGroup, y QGraphicsScene::createItemGroup().
bool QGraphicsItem::hasCursor() const
Devuelve true si este elemento tiene un cursor establecido; en caso contrario, devuelve false.
Por defecto, los elementos no tienen ningún cursor establecido. cursor() devolverá un cursor de flecha estándar.
Véase también unsetCursor().
bool QGraphicsItem::hasFocus() const
Devuelve true si este elemento está activo, y él o su focus proxy tiene el foco de entrada del teclado; en caso contrario, devuelve false.
Véase también focusItem(), setFocus(), QGraphicsScene::setFocusItem() y isActive().
void QGraphicsItem::hide()
Oculta el elemento (los elementos son visibles por defecto).
Esta función es equivalente a llamar a setVisible(false).
Véase también show() y setVisible().
[virtual protected] void QGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos hover enter para este ítem. La implementación por defecto llama a update(); en caso contrario no hace nada.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
Véase también hoverMoveEvent(), hoverLeaveEvent(), sceneEvent(), y setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de hover leave para este item. La implementación por defecto llama a update(); en caso contrario no hace nada.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
Véase también hoverEnterEvent(), hoverMoveEvent(), sceneEvent(), y setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de movimiento hover para este item. La implementación por defecto no hace nada.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
Ver también hoverEnterEvent(), hoverLeaveEvent(), sceneEvent(), y setAcceptHoverEvents().
[virtual protected] void QGraphicsItem::inputMethodEvent(QInputMethodEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos del método de entrada para este elemento. La implementación por defecto ignora el evento.
Véase también inputMethodQuery() y sceneEvent().
Qt::InputMethodHints QGraphicsItem::inputMethodHints() const
Devuelve los consejos sobre el método de entrada de este elemento.
Las sugerencias del método de entrada sólo son relevantes para los elementos de entrada. Las sugerencias son utilizadas por el método de entrada para indicar cómo debe operar. Por ejemplo, si el indicador Qt::ImhNumbersOnly está activado, el método de entrada puede cambiar sus componentes visuales para reflejar que sólo se pueden introducir números.
El efecto puede variar entre implementaciones de métodos de entrada.
Véase también setInputMethodHints() y inputMethodQuery().
[virtual protected] QVariant QGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const
Este método sólo es relevante para los elementos de entrada. Es utilizado por el método de entrada para consultar un conjunto de propiedades del elemento para poder soportar operaciones complejas del método de entrada, como soporte para texto circundante y reconversiones. query especifica qué propiedad se consulta.
Véase también inputMethodEvent() y QInputMethodEvent.
void QGraphicsItem::installSceneEventFilter(QGraphicsItem *filterItem)
Instala un filtro de eventos para este elemento en filterItem, haciendo que todos los eventos para este elemento pasen primero a través de filterItem's sceneEventFilter() function.
Para filtrar los eventos de otro elemento, instala este elemento como un filtro de eventos para el otro elemento. Ejemplo:
QGraphicsScene scene; QGraphicsEllipseItem *ellipse = scene.addEllipse(QRectF(-10, -10, 20, 20)); QGraphicsLineItem *line = scene.addLine(QLineF(-10, -10, 20, 20)); line->installSceneEventFilter(ellipse); // line's events are filtered by ellipse's sceneEventFilter() function. ellipse->installSceneEventFilter(line); // ellipse's events are filtered by line's sceneEventFilter() function.
Un ítem sólo puede filtrar eventos de otros ítems en la misma escena. Además, un ítem no puede filtrar sus propios eventos; en su lugar, puedes reimplementar sceneEvent() directamente.
Los ítems deben pertenecer a una escena para que los filtros de eventos de escena puedan ser instalados y utilizados.
Véase también removeSceneEventFilter(), sceneEventFilter() y sceneEvent().
bool QGraphicsItem::isActive() const
Devuelve true si este elemento está activo; en caso contrario devuelve false.
Un elemento sólo puede estar activo si la escena está activa. Un elemento está activo si es, o es descendiente de, un panel activo. Los elementos de paneles no activos no están activos.
Los elementos que no forman parte de un panel siguen a la activación de la escena cuando ésta no tiene un panel activo.
Sólo los elementos activos pueden obtener el foco de entrada.
Véase también QGraphicsScene::isActive(), QGraphicsScene::activePanel(), panel() y isPanel().
bool QGraphicsItem::isAncestorOf(const QGraphicsItem *child) const
Devuelve true si este elemento es un antepasado de child (es decir, si este elemento es el padre de child o uno de los antepasados del padre de child).
Véase también parentItem().
bool QGraphicsItem::isBlockedByModalPanel(QGraphicsItem **blockingPanel = nullptr) const
Devuelve true si este elemento está bloqueado por un panel modal, false en caso contrario. Si blockingPanel es distinto de cero, blockingPanel se asignará al panel modal que está bloqueando este elemento. Si este elemento no está bloqueado, esta función no establecerá blockingPanel.
Esta función siempre devuelve false para los elementos que no están en una escena.
Ver también panelModality(), setPanelModality(), y PanelModality.
bool QGraphicsItem::isClipped() const
Devuelve true si este elemento está recortado. Un elemento está recortado si ha establecido el indicador ItemClipsToShape, o si él mismo o alguno de sus ancestros ha establecido el indicador ItemClipsChildrenToShape.
El recorte afecta a la apariencia del elemento (es decir, al pintado), así como a la entrega de eventos de ratón y hover.
Véase también clipPath(), shape(), y setFlags().
bool QGraphicsItem::isEnabled() const
Devuelve true si el elemento está habilitado; en caso contrario, devuelve false.
Véase también setEnabled().
bool QGraphicsItem::isObscured(const QRectF &rect = QRectF()) const
Devuelve true si rect está completamente oscurecido por la forma opaca de cualquiera de los elementos que colisionan por encima de él (es decir, con un valor Z mayor que este elemento).
Se trata de una función sobrecargada.
Véase también opaqueArea().
bool QGraphicsItem::isObscured(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a isObscured(QRectF(x, y, w, h)).
Se trata de una función sobrecargada.
[virtual] bool QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const
Devuelve true si el rectángulo delimitador de este elemento está completamente oculto por la forma opaca de item.
La implementación base mapea item's opaqueArea() al sistema de coordenadas de este elemento, y luego comprueba si el boundingRect() de este elemento está completamente contenido dentro de la forma mapeada.
Puedes reimplementar esta función para proporcionar un algoritmo personalizado para determinar si este elemento está oculto por item.
Véase también opaqueArea() y isObscured().
bool QGraphicsItem::isPanel() const
Devuelve true si el elemento es un panel; en caso contrario devuelve false.
Véase también QGraphicsItem::panel() y ItemIsPanel.
bool QGraphicsItem::isSelected() const
Devuelve true si este elemento está seleccionado; en caso contrario, devuelve false.
Los elementos que están en un grupo heredan el estado seleccionado del grupo.
Los elementos no están seleccionados por defecto.
Véase también setSelected() y QGraphicsScene::setSelectionArea().
bool QGraphicsItem::isUnderMouse() const
Devuelve true si este elemento se encuentra actualmente bajo el cursor del ratón en una de las vistas; en caso contrario, devuelve false.
Véase también QGraphicsScene::views() y QCursor::pos().
bool QGraphicsItem::isVisible() const
Devuelve true si el elemento es visible; en caso contrario, devuelve false.
Tenga en cuenta que la visibilidad general del elemento no está relacionada con el hecho de que esté siendo visualizado o no por QGraphicsView.
Véase también setVisible().
bool QGraphicsItem::isVisibleTo(const QGraphicsItem *parent) const
Devuelve true si el elemento es visible para parent; en caso contrario, devuelve false. parent puede ser nullptr, en cuyo caso esta función devolverá si el elemento es visible para la escena o no.
Un elemento puede no ser visible para sus ancestros incluso si isVisible() es verdadero. También puede ser visible para sus ancestros incluso si isVisible() es falso. Si algún ancestro está oculto, el propio elemento estará implícitamente oculto, en cuyo caso esta función devolverá false.
Véase también isVisible() y setVisible().
bool QGraphicsItem::isWidget() const
Devuelve true si este elemento es un widget (es decir, QGraphicsWidget); en caso contrario, devuelve false.
bool QGraphicsItem::isWindow() const
Devuelve true si el elemento es una ventana QGraphicsWidget, en caso contrario devuelve false.
Véase también QGraphicsWidget::windowFlags().
[virtual protected] QVariant QGraphicsItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
Esta función virtual es llamada por QGraphicsItem para notificar a los elementos personalizados que alguna parte del estado del elemento cambia. Al reimplementar esta función, se puede reaccionar ante un cambio y, en algunos casos (dependiendo de change), se pueden realizar ajustes.
change es el parámetro del elemento que está cambiando. value es el nuevo valor; el tipo del valor depende de change.
Ejemplo:
QVariant Component::itemChange(GraphicsItemChange change, const QVariant &value) { if (change == ItemPositionChange && scene()) { // value is the new position. QPointF newPos = value.toPointF(); QRectF rect = scene()->sceneRect(); if (!rect.contains(newPos)) { // Keep the item inside the scene rect. newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left()))); newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top()))); return newPos; } } return QGraphicsItem::itemChange(change, value); }
La implementación por defecto no hace nada, y devuelve value.
Nota: Algunas funciones de QGraphicsItem no pueden invocarse en una reimplementación de esta función; consulte la documentación de GraphicsItemChange para obtener más detalles.
Véase también GraphicsItemChange.
QTransform QGraphicsItem::itemTransform(const QGraphicsItem *other, bool *ok = nullptr) const
Devuelve un QTransform que mapea las coordenadas de este elemento a other. Si ok no es nulo, y si no existe tal transformación, el booleano apuntado por ok se establecerá en false; en caso contrario, se establecerá en true.
Esta transformación proporciona una alternativa a las funciones mapToItem() o mapFromItem(), devolviendo la transformación apropiada para que usted mismo pueda mapear formas y coordenadas. También le ayuda a escribir un código más eficiente cuando se repite la asignación entre los mismos dos elementos.
Nota: En raras circunstancias, no existe ninguna transformación que mapee entre dos elementos.
Véase también mapToItem(), mapFromItem() y deviceTransform().
[virtual protected] void QGraphicsItem::keyPressEvent(QKeyEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de pulsación de teclas para este elemento. La implementación por defecto ignora el evento. Si reimplementas este manejador, el evento será aceptado por defecto.
Tenga en cuenta que los eventos de pulsación de teclas sólo se reciben para los elementos que establecen la bandera ItemIsFocusable, y que tienen el foco de entrada de teclado.
Véase también keyReleaseEvent(), setFocus(), QGraphicsScene::setFocusItem(), y sceneEvent().
[virtual protected] void QGraphicsItem::keyReleaseEvent(QKeyEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de liberación de teclas para este elemento. La implementación por defecto ignora el evento. Si reimplementas este manejador, el evento será aceptado por defecto.
Tenga en cuenta que los eventos de teclas sólo se reciben para los elementos que establecen la bandera ItemIsFocusable, y que tienen el foco de entrada del teclado.
Véase también keyPressEvent(), setFocus(), QGraphicsScene::setFocusItem(), y sceneEvent().
QPainterPath QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const
Mapea la ruta path, que está en el sistema de coordenadas de item, al sistema de coordenadas de este elemento, y devuelve la ruta mapeada.
Si item es nullptr, esta función devuelve lo mismo que mapFromScene().
Véase también itemTransform(), mapFromParent(), mapFromScene(), mapToItem(), y El sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas de item, al sistema de coordenadas de este elemento, y devuelve la coordenada mapeada.
Si item es nullptr, esta función devuelve lo mismo que mapFromScene().
Ver también itemTransform(), mapFromParent(), mapFromScene(), transform(), mapToItem(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas de item, al sistema de coordenadas de este elemento, y devuelve el polígono mapeado.
Si item es nullptr, esta función devuelve lo mismo que mapFromScene().
Ver también itemTransform(), mapToItem(), mapFromParent(), transform(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de item, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un polígono.
Si item es nullptr, esta función devuelve lo mismo que mapFromScene()
Ver también itemTransform(), mapToItem(), mapFromParent(), transform(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapFromItem(item, QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const
Esta función es equivalente a llamar a mapFromItem(item, QPointF(x, y)).
Se trata de una función sobrecargada.
QPainterPath QGraphicsItem::mapFromParent(const QPainterPath &path) const
Mapea la ruta path, que está en el sistema de coordenadas del padre de este elemento, al sistema de coordenadas de este elemento, y devuelve la ruta mapeada.
Véase también mapFromScene(), mapFromItem(), mapToParent() y Sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapFromParent(const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas del padre de este elemento, al sistema de coordenadas de este elemento, y devuelve la coordenada mapeada.
Véase también mapFromItem(), mapFromScene(), transform(), mapToParent() y Sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromParent(const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas del elemento padre, al sistema de coordenadas de este elemento, y devuelve el polígono mapeado.
Véase también mapToParent(), mapToItem(), transform() y Sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromParent(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas del elemento padre, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un polígono.
Véase también mapToParent(), mapFromItem(), transform() y Sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromParent(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapFromItem(QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapFromParent(qreal x, qreal y) const
Esta función es equivalente a llamar a mapFromParent(QPointF(x, y)).
Se trata de una función sobrecargada.
QPainterPath QGraphicsItem::mapFromScene(const QPainterPath &path) const
Mapea la ruta path, que está en el sistema de coordenadas de la escena de este elemento, al sistema de coordenadas de este elemento, y devuelve la ruta mapeada.
Véase también mapFromParent(), mapFromItem(), mapToScene(), y El sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapFromScene(const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas de la escena de este elemento, al sistema de coordenadas de este elemento, y devuelve la coordenada mapeada.
Véase también mapFromItem(), mapFromParent(), transform(), mapToScene(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromScene(const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas de la escena de este elemento, al sistema de coordenadas de este elemento, y devuelve el polígono mapeado.
Ver también mapToScene(), mapFromParent(), transform(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromScene(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de la escena de este elemento, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un polígono.
Ver también mapToScene(), mapFromItem(), transform(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapFromScene(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapFromScene(QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapFromScene(qreal x, qreal y) const
Esta función es equivalente a llamar a mapFromScene(QPointF(x, y)).
Se trata de una función sobrecargada.
QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de item, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Si item es nullptr, esta función devuelve lo mismo que mapRectFromScene().
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectFromItem(item, QRectF(x, y, w, h)).
QRectF QGraphicsItem::mapRectFromParent(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas del padre de este elemento, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem() y Sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectFromParent(QRectF(x, y, w, h)).
QRectF QGraphicsItem::mapRectFromScene(const QRectF &rect) const
Mapea el rectángulo rect, que está en coordenadas de escena, al sistema de coordenadas de este elemento, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectFromScene(QRectF(x, y, w, h)).
QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de item, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Si item es nullptr, esta función devuelve lo mismo que mapRectToScene().
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectToItem(item, QRectF(x, y, w, h)).
QRectF QGraphicsItem::mapRectToParent(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de su padre, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectToParent(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectToParent(QRectF(x, y, w, h)).
QRectF QGraphicsItem::mapRectToScene(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de la escena, y devuelve el rectángulo mapeado como un nuevo rectángulo (es decir, el rectángulo delimitador del polígono resultante).
Véase también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QRectF QGraphicsItem::mapRectToScene(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapRectToScene(QRectF(x, y, w, h)).
QPainterPath QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPainterPath &path) const
Mapea la ruta path, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de item, y devuelve la ruta mapeada.
Si item es nullptr, esta función devuelve lo mismo que mapToScene().
Ver también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de item, y devuelve la coordenada mapeada.
Si item es nullptr, esta función devuelve lo mismo que mapToScene().
Ver también itemTransform(), mapToParent(), mapToScene(), transform(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de item, y devuelve el polígono mapeado.
Si item es nullptr, esta función devuelve lo mismo que mapToScene().
Ver también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de item, y devuelve el rectángulo mapeado como un polígono.
Si item es nullptr, esta función devuelve lo mismo que mapToScene().
Ver también itemTransform(), mapToParent(), mapToScene(), mapFromItem(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapToItem(item, QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal x, qreal y) const
Esta función es equivalente a llamar a mapToItem(item, QPointF(x, y)).
Se trata de una función sobrecargada.
QPainterPath QGraphicsItem::mapToParent(const QPainterPath &path) const
Mapea la ruta path, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de su padre, y devuelve la ruta mapeada. Si el ítem no tiene padre, path será mapeado al sistema de coordenadas de la escena.
Véase también mapToScene(), mapToItem(), mapFromParent(), y El sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapToParent(const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de su padre, y devuelve la coordenada mapeada. Si el ítem no tiene padre, point será mapeado al sistema de coordenadas de la escena.
Ver también mapToItem(), mapToScene(), transform(), mapFromParent(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToParent(const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de su padre, y devuelve el polígono mapeado. Si el ítem no tiene padre, polygon será mapeado al sistema de coordenadas de la escena.
Ver también mapToScene(), mapToItem(), mapFromParent(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToParent(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de su padre, y devuelve el rectángulo mapeado como un polígono. Si el ítem no tiene padre, rect será mapeado al sistema de coordenadas de la escena.
Ver también mapToScene(), mapToItem(), mapFromParent(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToParent(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapToParent(QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapToParent(qreal x, qreal y) const
Esta función es equivalente a llamar a mapToParent(QPointF(x, y)).
Se trata de una función sobrecargada.
QPainterPath QGraphicsItem::mapToScene(const QPainterPath &path) const
Mapea el camino path, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de la escena, y devuelve el camino mapeado.
Véase también mapToParent(), mapToItem(), mapFromScene(), y El sistema de coordenadas de la vista gráfica.
QPointF QGraphicsItem::mapToScene(const QPointF &point) const
Mapea el punto point, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de la escena, y devuelve la coordenada mapeada.
Véase también mapToItem(), mapToParent(), transform(), mapFromScene(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToScene(const QPolygonF &polygon) const
Mapea el polígono polygon, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de la escena, y devuelve el polígono mapeado.
Ver también mapToParent(), mapToItem(), mapFromScene(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToScene(const QRectF &rect) const
Mapea el rectángulo rect, que está en el sistema de coordenadas de este elemento, al sistema de coordenadas de la escena, y devuelve el rectángulo mapeado como un polígono.
Véase también mapToParent(), mapToItem(), mapFromScene(), y El sistema de coordenadas de la vista gráfica.
QPolygonF QGraphicsItem::mapToScene(qreal x, qreal y, qreal w, qreal h) const
Esta función es equivalente a llamar a mapToScene(QRectF(x, y, w, h)).
QPointF QGraphicsItem::mapToScene(qreal x, qreal y) const
Esta función es equivalente a llamar a mapToScene(QPointF(x, y)).
Se trata de una función sobrecargada.
[virtual protected] void QGraphicsItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de doble clic del ratón para este elemento.
Al hacer doble clic en un elemento, el elemento recibirá primero un evento de pulsación del ratón, seguido de un evento de liberación (es decir, un clic), luego un evento de doble clic y finalmente un evento de liberación.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
La implementación por defecto llama a mousePressEvent(). Si quieres mantener la implementación base cuando reimplementes esta función, llama a QGraphicsItem::mouseDoubleClickEvent() en tu reimplementación.
Ten en cuenta que un ítem no recibirá eventos de doble click si no es ni selectable ni movable (los clicks simples de ratón son ignorados en este caso, y eso detiene la generación de dobles clicks).
Véase también mousePressEvent(), mouseMoveEvent(), mouseReleaseEvent(), y sceneEvent().
[virtual protected] void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de movimiento del ratón para este ítem. Si recibe este evento, puede estar seguro de que este ítem también recibió un evento de pulsación de ratón, y que este ítem es el actual capturador del ratón.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
La implementación por defecto maneja la interacción básica con los elementos, como la selección y el movimiento. Si quieres mantener la implementación base cuando reimplementes esta función, llama a QGraphicsItem::mouseMoveEvent() en tu reimplementación.
Ten en cuenta que mousePressEvent() decide qué elemento gráfico es el que recibe los eventos de ratón. Consulta la descripción de mousePressEvent() para más detalles.
Véase también mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), y sceneEvent().
[virtual protected] void QGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de pulsación de ratón para este ítem. Los eventos de pulsación del ratón sólo se envían a los elementos que aceptan el botón del ratón que se pulsa. Por defecto, un ítem acepta todos los botones del ratón, pero puedes cambiar esto llamando a setAcceptedMouseButtons().
El evento de pulsación del ratón decide qué elemento debe convertirse en el capturador del ratón (ver QGraphicsScene::mouseGrabberItem()). Si no reimplementas esta función, el evento de pulsación se propagará a cualquier elemento situado por debajo de este elemento, y no se enviarán otros eventos de ratón a este elemento.
Si reimplementas esta función, event será aceptada por defecto (ver QEvent::accept()), y este elemento será entonces el que agarre el ratón. Esto permite al elemento recibir futuros eventos de mover, soltar y doble clic. Si se llama a QEvent::ignore() en event, este elemento perderá el control del ratón, y event se propagará a cualquier elemento situado por debajo. No se enviarán más eventos de ratón a este elemento a menos que se reciba un nuevo evento de pulsación de ratón.
La implementación por defecto maneja la interacción básica con los elementos, como la selección y el movimiento. Si quieres mantener la implementación base cuando reimplementes esta función, llama a QGraphicsItem::mousePressEvent() en tu reimplementación.
El evento es QEvent::ignore()d para elementos que no son ni movable ni selectable.
Ver también mouseMoveEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), y sceneEvent().
[virtual protected] void QGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de liberación del ratón para este ítem.
Llamar a QEvent::ignore() o QEvent::accept() en event no tiene ningún efecto.
La implementación por defecto maneja la interacción básica con los ítems, como la selección y el movimiento. Si quieres mantener la implementación base cuando reimplementes esta función, llama a QGraphicsItem::mouseReleaseEvent() en tu reimplementación.
Ten en cuenta que mousePressEvent() decide qué elemento gráfico es el que recibe los eventos de ratón. Consulta la descripción de mousePressEvent() para más detalles.
Véase también mousePressEvent(), mouseMoveEvent(), mouseDoubleClickEvent(), y sceneEvent().
void QGraphicsItem::moveBy(qreal dx, qreal dy)
Desplaza el elemento dx puntos horizontalmente y dy puntos verticalmente. Esta función equivale a llamar a setPos(pos() + QPointF(dx, dy)).
qreal QGraphicsItem::opacity() const
Devuelve la opacidad local de este elemento, que está entre 0,0 (transparente) y 1,0 (opaco). Este valor se combina con los valores de los elementos padre y ancestro en effectiveOpacity(). La opacidad efectiva decide cómo se representa el elemento y también afecta a su visibilidad cuando es consultada por funciones como QGraphicsView::items().
La propiedad de opacidad decide el estado del pintor pasado a la función paint(). Si el elemento está en caché, es decir, ItemCoordinateCache o DeviceCoordinateCache, la propiedad de opacidad se aplicará a la caché del elemento a medida que se renderiza.
La opacidad por defecto es 1.0; totalmente opaco.
Véase también setOpacity(), paint(), ItemIgnoresParentOpacity, y ItemDoesntPropagateOpacityToChildren.
[virtual] QPainterPath QGraphicsItem::opaqueArea() const
Esta función virtual devuelve una forma que representa el área donde este elemento es opaco. Un área es opaca si se rellena con un pincel o color opaco (es decir, no transparente).
Esta función es utilizada por isObscuredBy(), que es llamada por los elementos subyacentes para determinar si están oscurecidos por este elemento.
La implementación por defecto devuelve un QPainterPath vacío, lo que indica que este elemento es completamente transparente y no oculta ningún otro elemento.
Véase también isObscuredBy(), isObscured() y shape().
[pure virtual] void QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
Esta función, que normalmente es llamada por QGraphicsView, pinta el contenido de un elemento en coordenadas locales.
Reimplemente esta función en una subclase de QGraphicsItem para proporcionar la implementación de pintura del elemento, utilizando painter. El parámetro option proporciona opciones de estilo para el elemento, como su estado, el área expuesta y sus sugerencias de nivel de detalle. El argumento widget es opcional. Si se proporciona, apunta al widget sobre el que se está pintando; en caso contrario, es 0. Para la pintura en caché, widget es siempre 0.
void RoundRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->drawRoundedRect(-10, -10, 20, 20, 5, 5); }
El lápiz del pintor es de ancho 0 por defecto, y su lápiz se inicializa con el pincel QPalette::Text de la paleta del dispositivo de pintura. El pincel se inicializa con QPalette::Window.
Asegúrese de restringir toda la pintura dentro de los límites de boundingRect() para evitar artefactos de renderizado (ya que QGraphicsView no recorta el pintor por usted). En particular, cuando QPainter renderiza el contorno de una forma usando un QPen asignado, la mitad del contorno se dibujará fuera, y la otra mitad dentro, de la forma que está renderizando (por ejemplo, con un ancho de lápiz de 2 unidades, debe dibujar contornos 1 unidad dentro de boundingRect()). QGraphicsItem no soporta el uso de lápices cosméticos con un ancho distinto de cero.
Todo el pintado se realiza en coordenadas locales.
Nota: Es obligatorio que un elemento se redibuje siempre exactamente de la misma manera, a menos que se haya llamado a update(); de lo contrario pueden producirse artefactos visuales. En otras palabras, dos llamadas subsecuentes a paint() deben producir siempre la misma salida, a menos que update() haya sido llamada entre ellas.
Nota: Activar el almacenamiento en caché de un elemento no garantiza que paint() sea invocada una sola vez por el marco de la Vista Gráfica, incluso sin ninguna llamada explícita a update(). Consulte la documentación de setCacheMode() para más detalles.
Véase también setCacheMode(), QPen::width(), Item Coordinates, y ItemUsesExtendedStyleOption.
QGraphicsItem *QGraphicsItem::panel() const
Devuelve el panel del elemento, o nullptr si este elemento no tiene panel. Si el elemento es un panel, se devolverá a sí mismo. Si no, devolverá el ancestro más cercano que sea un panel.
Véase también isPanel() y ItemIsPanel.
QGraphicsItem::PanelModality QGraphicsItem::panelModality() const
Devuelve la modalidad de este elemento.
Véase también setPanelModality().
QGraphicsItem *QGraphicsItem::parentItem() const
Devuelve un puntero al elemento padre de este elemento. Si este elemento no tiene padre, se devuelve nullptr.
Véase también setParentItem() y childItems().
QGraphicsObject *QGraphicsItem::parentObject() const
Devuelve un puntero al elemento padre, convertido a QGraphicsObject. Devuelve nullptr si el elemento padre no es QGraphicsObject.
Véase también parentItem() y childItems().
QGraphicsWidget *QGraphicsItem::parentWidget() const
Devuelve un puntero al widget padre del elemento. El widget padre del elemento es el elemento padre más cercano que es un widget.
Véase también parentItem() y childItems().
QPointF QGraphicsItem::pos() const
Devuelve la posición del elemento en coordenadas del padre. Si el elemento no tiene padre, su posición se da en coordenadas de la escena.
La posición del elemento describe su origen (coordenada local (0, 0)) en coordenadas principales; esta función devuelve lo mismo que mapToParent(0, 0).
Por comodidad, también puede llamar a scenePos() para determinar la posición del elemento en coordenadas de la escena, independientemente de su padre.
Véase también x(), y(), setPos(), transform(), y El sistema de coordenadas de la vista gráfica.
[protected] void QGraphicsItem::prepareGeometryChange()
Prepara el elemento para un cambio de geometría. Llame a esta función antes de cambiar el rectángulo delimitador de un elemento para mantener actualizado el índice de QGraphicsScene.
prepareGeometryChange() llamará a update() si es necesario.
Ejemplo:
void CircleItem::setRadius(qreal newRadius) { if (radius != newRadius) { prepareGeometryChange(); radius = newRadius; } }
Véase también boundingRect().
void QGraphicsItem::removeSceneEventFilter(QGraphicsItem *filterItem)
Elimina un filtro de eventos sobre este elemento de filterItem.
Véase también installSceneEventFilter().
void QGraphicsItem::resetTransform()
Restablece la matriz de transformación de este elemento a la matriz de identidad o todas las propiedades de transformación a sus valores por defecto. Esto es equivalente a llamar a setTransform(QTransform()).
Véase también setTransform() y transform().
qreal QGraphicsItem::rotation() const
Devuelve la rotación en el sentido de las agujas del reloj, en grados, alrededor del eje Z. El valor por defecto es 0 (es decir, el elemento no se rota).
La rotación se combina con scale(), transform() y transformations() del elemento para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también setRotation(), transformOriginPoint() y Transformations.
qreal QGraphicsItem::scale() const
Devuelve el factor de escala del ítem. El factor de escala por defecto es 1.0 (es decir, el elemento no se escala).
La escala se combina con rotation(), transform() y transformations() del elemento para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también setScale(), rotation() y Transformations.
QGraphicsScene *QGraphicsItem::scene() const
Devuelve la escena actual para el elemento, o nullptr si el elemento no está almacenado en una escena.
Para añadir o mover un elemento a una escena, llame a QGraphicsScene::addItem().
QRectF QGraphicsItem::sceneBoundingRect() const
Devuelve el rectángulo delimitador de este elemento en coordenadas de escena, combinando sceneTransform() con boundingRect().
Véase también boundingRect() y El sistema de coordenadas de la vista gráfica.
[virtual protected] bool QGraphicsItem::sceneEvent(QEvent *event)
Esta función virtual recibe eventos para este elemento. Reimplemente esta función para interceptar eventos antes de que sean enviados a los manejadores de eventos especializados contextMenuEvent(), focusInEvent(), focusOutEvent(), hoverEnterEvent(), hoverMoveEvent(), hoverLeaveEvent(), keyPressEvent(), keyReleaseEvent(), mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), y mouseDoubleClickEvent().
Devuelve true si el evento fue reconocido y manejado; en caso contrario, (por ejemplo, si el tipo de evento no fue reconocido) se devuelve false.
event es el evento interceptado.
[virtual protected] bool QGraphicsItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
Filtra los eventos del elemento watched. event es el evento filtrado.
Reimplementar esta función en una subclase hace posible que el elemento sea utilizado como un filtro de eventos para otros elementos, interceptando todos los eventos enviados a esos elementos antes de que puedan responder.
Las reimplementaciones deben devolver true para evitar el procesamiento posterior de un evento dado, asegurando que no será entregado al elemento vigilado, o devolver false para indicar que el evento debe ser propagado posteriormente por el sistema de eventos.
Véase también installSceneEventFilter().
QPointF QGraphicsItem::scenePos() const
Devuelve la posición del elemento en coordenadas de escena. Esto es equivalente a llamar a mapToScene(0, 0).
Véase también pos(), sceneTransform(), y El sistema de coordenadas de la vista gráfica.
QTransform QGraphicsItem::sceneTransform() const
Devuelve la matriz de transformación de la escena de este elemento. Esta matriz puede utilizarse para asignar coordenadas y formas geométricas desde el sistema de coordenadas local de este elemento al sistema de coordenadas de la escena. Para asignar coordenadas de la escena, primero debe invertir la matriz devuelta.
Ejemplo:
QGraphicsRectItem rect; rect.setPos(100, 100); rect.sceneTransform().map(QPointF(0, 0)); // returns QPointF(100, 100); rect.sceneTransform().inverted().map(QPointF(100, 100)); // returns QPointF(0, 0);
A diferencia de transform(), que sólo devuelve la transformación local de un elemento, esta función incluye la posición del elemento (y de sus padres) y todas las propiedades de transformación.
Véase también transform(), setTransform(), scenePos(), El sistema de coordenadas de la vista gráfica y Transformations.
void QGraphicsItem::scroll(qreal dx, qreal dy, const QRectF &rect = QRectF())
Desplaza el contenido de rect por dx, dy. Si rect es un rectángulo nulo (por defecto), se desplaza el rectángulo delimitador del elemento.
El desplazamiento proporciona una alternativa rápida a simplemente redibujar cuando el contenido del elemento (o partes del elemento) se desplaza vertical u horizontalmente. Dependiendo de la transformación actual y de las capacidades del dispositivo de pintura (es decir, la ventana gráfica), esta operación puede consistir simplemente en mover píxeles de una ubicación a otra utilizando memmove(). En la mayoría de los casos esto es más rápido que rerenderizar el área completa.
Después del desplazamiento, el elemento emitirá una actualización para las nuevas áreas expuestas. Si el desplazamiento no está soportado (por ejemplo, si se está renderizando a una vista OpenGL, que no se beneficia de las optimizaciones de desplazamiento), esta función es equivalente a llamar a update(rect).
Nota: El desplazamiento sólo está soportado cuando QGraphicsItem::ItemCoordinateCache está habilitado; en todos los demás casos, llamar a esta función es equivalente a llamar a update(rect). Si está seguro de que el elemento es opaco y no está superpuesto por otros elementos, puede asignar las coordenadas de rect a las coordenadas de la ventana gráfica y desplazar la ventana.
QTransform xform = item->deviceTransform(view->viewportTransform()); QRect deviceRect = xform.mapRect(rect).toAlignedRect(); view->viewport()->scroll(dx, dy, deviceRect);
Véase también boundingRect().
void QGraphicsItem::setAcceptDrops(bool on)
Si on es verdadero, este elemento aceptará eventos de arrastrar y soltar; en caso contrario, será transparente para los eventos de arrastrar y soltar. Por defecto, los elementos no aceptan eventos de arrastrar y soltar.
Véase también acceptDrops().
void QGraphicsItem::setAcceptHoverEvents(bool enabled)
Si enabled es verdadero, este elemento aceptará eventos hover; de lo contrario, los ignorará. Por defecto, los elementos no aceptan eventos hover.
Los eventos hover se envían cuando no hay ningún ítem que acepte el cursor del ratón. Se envían cuando el cursor del ratón entra en un elemento, cuando se mueve dentro del elemento y cuando el cursor sale de un elemento. Los eventos hover se suelen utilizar para resaltar un elemento cuando se entra en él, y para realizar un seguimiento del cursor del ratón cuando pasa por encima del elemento (equivalente a QWidget::mouseTracking).
Los elementos padre reciben eventos hover de entrada antes que sus hijos, y eventos de salida después que sus hijos. Sin embargo, el elemento padre no recibe un evento hover leave si el cursor entra en un elemento hijo; el elemento padre permanece "hovered" hasta que el cursor abandona su área, incluyendo las áreas de sus hijos.
Si un ítem padre maneja eventos hijo, recibirá eventos hover mover, arrastrar mover y soltar cuando el cursor pase a través de sus hijos, pero no recibe eventos hover entrar y hover salir, ni eventos arrastrar entrar y arrastrar salir en nombre de sus hijos.
Un QGraphicsWidget con decoraciones de ventana aceptará eventos hover independientemente del valor de acceptHoverEvents().
Véase también acceptHoverEvents(), hoverEnterEvent(), hoverMoveEvent() y hoverLeaveEvent().
void QGraphicsItem::setAcceptTouchEvents(bool enabled)
Si enabled es verdadero, este elemento aceptará touch events; de lo contrario, los ignorará. Por defecto, los elementos no aceptan eventos táctiles.
Véase también acceptTouchEvents().
void QGraphicsItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)
Establece el ratón buttons para el que este elemento acepta eventos de ratón.
Por defecto, se aceptan todos los botones del ratón. Si un ítem acepta un botón del ratón, se convertirá en el ítem receptor del ratón cuando se envíe un evento de pulsación del ratón para ese botón. Sin embargo, si el elemento no acepta el botón del ratón, QGraphicsScene reenviará los eventos del ratón al primer elemento situado debajo que sí lo acepte.
Para desactivar los eventos de ratón para un elemento (es decir, hacerlo transparente para los eventos de ratón), llame a setAcceptedMouseButtons(Qt::NoButton).
Véase también acceptedMouseButtons() y mousePressEvent().
void QGraphicsItem::setActive(bool active)
Si active es verdadero, y la escena está activa, el panel de este elemento se activará. En caso contrario, el panel se desactivará.
Si el elemento no forma parte de una escena activa, active decidirá qué ocurre con el panel cuando la escena se active o el elemento se añada a la escena. Si es verdadero, el panel del elemento se activará cuando el elemento se añada a la escena o cuando la escena se active. En caso contrario, el elemento permanecerá inactivo independientemente del estado de activación de la escena.
Véase también isPanel(), QGraphicsScene::setActivePanel() y QGraphicsScene::isActive().
void QGraphicsItem::setBoundingRegionGranularity(qreal granularity)
Establece la granularidad de la región delimitadora en granularity; un valor entre 0 y 1. El valor predeterminado es 0 (es decir, la granularidad más baja, en la que la región delimitadora corresponde al rectángulo delimitador del elemento).
boundingRegion() utiliza la granularidad para calcular el grosor de la región delimitadora del elemento. La granularidad más alta posible es 1, donde boundingRegion() devolverá el contorno más fino posible para el dispositivo respectivo (por ejemplo, para una ventana gráfica QGraphicsView, esto le da una región delimitadora de píxeles perfectos). La granularidad más baja posible es 0. El valor de granularity describe la relación entre la resolución del dispositivo y la resolución de la región delimitadora (por ejemplo, un valor de 0,25 proporcionará una región en la que cada trozo corresponde a 4x4 unidades de dispositivo / píxeles).
Véase también boundingRegionGranularity().
void QGraphicsItem::setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize())
Establece el modo de caché del elemento en mode.
El argumento opcional logicalCacheSize sólo es utilizado por el modo ItemCoordinateCache, y describe la resolución del búfer de caché; si logicalCacheSize es (100, 100), QGraphicsItem ajustará el elemento en 100x100 píxeles en la memoria gráfica, independientemente del tamaño lógico del propio elemento. Por defecto, QGraphicsItem utiliza el tamaño de boundingRect(). Para todos los demás modos de caché distintos de ItemCoordinateCache, se ignora logicalCacheSize.
El almacenamiento en caché puede acelerar el renderizado si el elemento tarda mucho tiempo en redibujarse. En algunos casos la caché también puede ralentizar el renderizado, en particular cuando el elemento pasa menos tiempo redibujándose que el que QGraphicsItem pasa redibujándose desde la caché.
Cuando el almacenamiento en caché está activado, la función paint() de un elemento generalmente dibujará en una caché de mapa de píxeles fuera de la pantalla; para cualquier solicitud de repintado posterior, el marco de la Vista Gráfica volverá a dibujar desde la caché. Este enfoque funciona especialmente bien con QGLWidget, que almacena toda la caché como texturas OpenGL.
Ten en cuenta que puede ser necesario cambiar el límite de caché de QPixmapCache para obtener un rendimiento óptimo.
Puedes leer más sobre los diferentes modos de caché en la documentación de CacheMode.
Nota: Activar el almacenamiento en caché no implica que la función paint() del elemento sólo se llame en respuesta a una llamada explícita a update(). Por ejemplo, bajo presión de memoria, Qt puede decidir eliminar parte de la información de la caché; en tales casos, la función paint() de un elemento será invocada incluso si no hubo ninguna llamada a update() (es decir, exactamente como si no hubiera caché habilitada).
Véase también cacheMode(), CacheMode, y QPixmapCache::setCacheLimit().
void QGraphicsItem::setCursor(const QCursor &cursor)
Establece la forma actual del cursor para el elemento en cursor. El cursor del ratón asumirá esta forma cuando esté sobre este elemento. Consulta list of predefined cursor objects para ver una serie de formas útiles.
Un elemento del editor puede querer usar un cursor en forma de I:
item->setCursor(Qt::IBeamCursor);
Si no se ha establecido ningún cursor, se utilizará el cursor del elemento situado debajo.
Véase también cursor(), hasCursor(), unsetCursor(), QWidget::cursor, y QGuiApplication::overrideCursor().
void QGraphicsItem::setData(int key, const QVariant &value)
Establece los datos personalizados de este elemento para la clave key en value.
Los datos personalizados del elemento son útiles para almacenar propiedades arbitrarias para cualquier elemento. Qt no utiliza esta característica para almacenar datos; se proporciona únicamente para la comodidad del usuario.
Véase también data().
void QGraphicsItem::setEnabled(bool enabled)
Si enabled es verdadero, el elemento está habilitado; en caso contrario, está deshabilitado.
Los elementos desactivados son visibles, pero no reciben ningún evento, y no pueden tomar el foco ni ser seleccionados. Los eventos del ratón se descartan; no se propagan a menos que el elemento también sea invisible, o si no acepta eventos del ratón (véase acceptedMouseButtons()). Un elemento deshabilitado no puede convertirse en el agarrador del ratón, y como resultado de esto, un elemento pierde el agarre si se deshabilita al agarrar el ratón, al igual que pierde el foco si tenía foco cuando estaba deshabilitado.
Los elementos desactivados se dibujan tradicionalmente utilizando colores grisáceos (ver QPalette::Disabled).
Si desactivas un elemento padre, todos sus hijos también se desactivarán. Si habilitas un elemento padre, todos los hijos se habilitarán, a menos que hayan sido explícitamente deshabilitados (es decir, si llamas a setEnabled(false) en un hijo, no se volverá a habilitar si su padre es deshabilitado, y luego habilitado de nuevo).
Los elementos están activados por defecto.
Nota: Si instalas un filtro de eventos, puedes interceptar los eventos antes de que lleguen a los elementos; este mecanismo no tiene en cuenta el estado de habilitación del elemento.
Véase también isEnabled().
void QGraphicsItem::setFiltersChildEvents(bool enabled)
Si enabled es verdadero, este elemento se configura para filtrar todos los eventos de todos sus hijos (es decir, todos los eventos destinados a cualquiera de sus hijos se envían en su lugar a este elemento); de lo contrario, si enabled es falso, este elemento sólo gestionará sus propios eventos. El valor por defecto es false.
Véase también filtersChildEvents().
void QGraphicsItem::setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true)
Si enabled es verdadero, se activa el indicador de elemento flag; en caso contrario, se desactiva.
Véase también flags() y setFlags().
void QGraphicsItem::setFlags(QGraphicsItem::GraphicsItemFlags flags)
Establece las banderas de los elementos en flags. Todas las banderas en flags están habilitadas; todas las banderas que no están en flags están deshabilitadas.
Si el ítem tenía foco y flags no habilita ItemIsFocusable, el ítem pierde el foco como resultado de llamar a esta función. Del mismo modo, si el elemento estaba seleccionado y flags no habilita ItemIsSelectable, el elemento se deselecciona automáticamente.
Por defecto, no se activa ninguna bandera. (QGraphicsWidget habilita la bandera ItemSendsGeometryChanges por defecto para seguir los cambios de posición).
Véase también flags() y setFlag().
void QGraphicsItem::setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason)
Da el foco de entrada de teclado a este elemento. El argumento focusReason será pasado a cualquier focus event generado por esta función; se utiliza para dar una explicación de qué causó que el elemento obtuviera el foco.
Sólo los elementos activados que establecen la bandera ItemIsFocusable pueden aceptar el foco del teclado.
Si este elemento no es visible, no está activo o no está asociado a una escena, no obtendrá el foco de entrada inmediato. Sin embargo, se registrará como el elemento de foco preferido para su subárbol de elementos, en caso de que más tarde se haga visible.
Como resultado de llamar a esta función, este elemento recibirá un focus in event con focusReason. Si otro elemento ya tiene el foco, ese elemento recibirá primero un focus out event indicando que ha perdido el foco de entrada.
Véase también clearFocus(), hasFocus(), focusItem() y focusProxy().
void QGraphicsItem::setFocusProxy(QGraphicsItem *item)
Establece el proxy de enfoque del elemento en item.
Si un elemento tiene un proxy de foco, el proxy de foco recibirá el foco de entrada cuando el elemento obtenga el foco de entrada. El propio elemento seguirá teniendo el foco (es decir, hasFocus() devolverá true), pero sólo el proxy de foco recibirá la entrada del teclado.
Un proxy de foco puede tener a su vez un proxy de foco, y así sucesivamente. En tal caso, la entrada del teclado será manejada por el proxy de foco más externo.
El proxy de foco item debe pertenecer a la misma escena que este elemento.
Véase también focusProxy(), setFocus(), y hasFocus().
void QGraphicsItem::setGraphicsEffect(QGraphicsEffect *effect)
Establece effect como efecto del elemento. Si ya hay un efecto instalado en este elemento, QGraphicsItem eliminará el efecto existente antes de instalar el nuevo effect. Puede eliminar un efecto existente llamando a setGraphicsEffect(nullptr).
Si effect es el efecto instalado en un elemento diferente, setGraphicsEffect() eliminará el efecto del elemento y lo instalará en este elemento.
QGraphicsItem toma posesión de effect.
Nota: Esta función aplicará el efecto sobre sí misma y sobre todos sus hijos.
Véase también graphicsEffect().
void QGraphicsItem::setGroup(QGraphicsItemGroup *group)
Añade este elemento al grupo de elementos group. Si group es nullptr, este elemento se elimina de cualquier grupo actual y se añade como hijo del padre del grupo anterior.
Véase también group() y QGraphicsScene::createItemGroup().
void QGraphicsItem::setInputMethodHints(Qt::InputMethodHints hints)
Establece las sugerencias del método de entrada actual de este elemento en hints.
Véase también inputMethodHints() y inputMethodQuery().
void QGraphicsItem::setOpacity(qreal opacity)
Establece la opacidad local de este elemento opacity, entre 0.0 (transparente) y 1.0 (opaco). La opacidad local del elemento se combina con las opacidades de los elementos padre y ancestro en effectiveOpacity().
Por defecto, la opacidad se propaga de padre a hijo, de modo que si la opacidad de un padre es 0,5 y la de un hijo también es 0,5, la opacidad efectiva del hijo será 0,25.
La propiedad de opacidad decide el estado del pintor pasado a la función paint(). Si el elemento está en caché, es decir, ItemCoordinateCache o DeviceCoordinateCache, la propiedad efectiva se aplicará a la caché del elemento a medida que se renderiza.
Hay dos banderas de elemento que afectan a cómo se combina la opacidad del elemento con el padre: ItemIgnoresParentOpacity y ItemDoesntPropagateOpacityToChildren.
Nota: Establecer la opacidad de un elemento a 0 no hará que el elemento sea invisible (según isVisible()), pero el elemento será tratado como invisible. Consulte la documentación de setVisible() para más información.
Véase también opacity(), effectiveOpacity(), y setVisible().
void QGraphicsItem::setPanelModality(QGraphicsItem::PanelModality panelModality)
Establece la modalidad de este elemento en panelModality.
Cambiar la modalidad de un elemento visible tiene efecto inmediato.
Véase también panelModality().
void QGraphicsItem::setParentItem(QGraphicsItem *newParent)
Establece el elemento padre de este elemento en newParent. Si este elemento ya tiene un padre, primero se elimina del padre anterior. Si newParent es 0, este elemento se convertirá en un elemento de nivel superior.
Ten en cuenta que esto añade implícitamente este elemento gráfico a la escena del padre. No se debe añadir el elemento a la escena en add.
El comportamiento cuando se llama a esta función en un elemento que es un ancestro de newParent es indefinido.
Véase también parentItem() y childItems().
void QGraphicsItem::setPos(const QPointF &pos)
Establece la posición del elemento en pos, que está en coordenadas del elemento padre. Para elementos sin padre, pos está en coordenadas de escena.
La posición del elemento describe su origen (coordenada local (0, 0)) en coordenadas padre.
Véase también pos(), scenePos(), y El sistema de coordenadas de la vista gráfica.
void QGraphicsItem::setPos(qreal x, qreal y)
Esta función es equivalente a llamar a setPos(QPointF(x, y)).
Se trata de una función sobrecargada.
void QGraphicsItem::setRotation(qreal angle)
Establece la rotación en el sentido de las agujas del reloj angle, en grados, alrededor del eje Z. El valor por defecto es 0 (es decir, el elemento no rota). Si se asigna un valor negativo, el elemento girará en sentido contrario a las agujas del reloj. Normalmente el ángulo de rotación está en el rango (-360, 360), pero también es posible asignar valores fuera de este rango (por ejemplo, una rotación de 370 grados es lo mismo que una rotación de 10 grados).
El elemento se rota alrededor de su punto de origen de transformación, que por defecto es (0, 0). Puede seleccionar un origen de transformación diferente llamando a setTransformOriginPoint().
La rotación se combina con las transformaciones del elemento scale(), transform() y transformations() para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también rotation(), setTransformOriginPoint(), y Transformations.
void QGraphicsItem::setScale(qreal factor)
Establece la escala factor del elemento. El factor de escala por defecto es 1.0 (es decir, el elemento no se escala). Un factor de escala de 0,0 reducirá el elemento a un único punto. Si proporciona un factor de escala negativo, el elemento se volteará y reflejará (es decir, girará 180 grados).
El elemento se escala alrededor de su punto de origen de transformación, que por defecto es (0, 0). Puede seleccionar un origen de transformación diferente llamando a setTransformOriginPoint().
La escala se combina con rotation(), transform() y transformations() para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también scale(), setTransformOriginPoint(), y Ejemplo de transformaciones.
void QGraphicsItem::setSelected(bool selected)
Si selected es verdadero y este elemento es seleccionable, este elemento se selecciona; de lo contrario, se deselecciona.
Si el elemento está en un grupo, el estado seleccionado de todo el grupo se conmuta mediante esta función. Si el grupo está seleccionado, todos los elementos del grupo también se seleccionan, y si el grupo no está seleccionado, no se selecciona ningún elemento del grupo.
Sólo pueden seleccionarse los elementos visibles, habilitados y seleccionables. Si selected es verdadero y este elemento es invisible o está deshabilitado o no se puede seleccionar, esta función no hace nada.
Por defecto, los elementos no se pueden seleccionar. Para habilitar la selección, active el indicador ItemIsSelectable.
Esta función se proporciona por conveniencia, permitiendo la conmutación individual del estado seleccionado de un elemento. Sin embargo, una forma más común de seleccionar elementos es llamar a QGraphicsScene::setSelectionArea(), que llamará a esta función para todos los elementos visibles, habilitados y seleccionables dentro de un área especificada en la escena.
Véase también isSelected() y QGraphicsScene::selectedItems().
void QGraphicsItem::setToolTip(const QString &toolTip)
Establece la información sobre herramientas del elemento en toolTip. Si toolTip está vacío, se borra la información sobre herramientas del elemento.
Véase también toolTip() y QToolTip.
void QGraphicsItem::setTransform(const QTransform &matrix, bool combine = false)
Establece la matriz de transformación actual del elemento en matrix.
Si combine es verdadero, entonces matrix se combina con la matriz actual; de lo contrario, matrix reemplaza la matriz actual. combine es falso por defecto.
Para simplificar la interacción con los elementos utilizando una vista transformada, QGraphicsItem proporciona funciones mapTo... y mapFrom... que pueden traducir entre las coordenadas de los elementos y las de la escena. Por ejemplo, puedes llamar a mapToScene() para convertir las coordenadas de un elemento en coordenadas de la escena, o a mapFromScene() para convertir las coordenadas de la escena en coordenadas del elemento.
La matriz de transformación se combina con rotation(), scale() y transformations() del elemento en una transformación combinada que asigna el sistema de coordenadas del elemento a su padre.
Ver también transform(), setRotation(), setScale(), setTransformOriginPoint(), El sistema de coordenadas de la vista gráfica, y Transformations.
void QGraphicsItem::setTransformOriginPoint(const QPointF &origin)
Establece el punto origin para la transformación en coordenadas de posición.
Véase también transformOriginPoint() y Transformations.
void QGraphicsItem::setTransformOriginPoint(qreal x, qreal y)
Establece el punto de origen de la transformación en coordenadas de elemento. Esto es equivalente a llamar a setTransformOriginPoint(QPointF(x, y)).
Esta es una función sobrecargada.
Véase también setTransformOriginPoint() y Transformations.
void QGraphicsItem::setTransformations(const QList<QGraphicsTransform *> &transformations)
Establece una lista de gráficos transformations (QGraphicsTransform) que se aplican actualmente a este elemento.
Si todo lo que quieres es rotar o escalar un elemento, deberías llamar a setRotation() o setScale() en su lugar. Si desea establecer una transformación arbitraria en un elemento, puede llamar a setTransform().
QGraphicsTransform es para aplicar y controlar una cadena de operaciones de transformación individuales sobre un elemento. Es particularmente útil en animaciones, donde cada operación de transformación necesita ser interpolada independientemente, o diferentemente.
Las transformaciones se combinan con rotation(), scale() y transform() del elemento para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también transformations(), scale(), setTransformOriginPoint() y Transformations.
void QGraphicsItem::setVisible(bool visible)
Si visible es verdadero, el elemento se hace visible. En caso contrario, se hace invisible. Los elementos invisibles no se pintan ni reciben eventos. En particular, los eventos del ratón pasan a través de los elementos invisibles, y son enviados a cualquier elemento que pueda estar detrás. Los elementos invisibles tampoco se pueden seleccionar, no pueden tomar el foco de entrada y no son detectados por las funciones de localización de elementos de QGraphicsScene.
Si un ítem se vuelve invisible mientras está siendo agarrado por el ratón (es decir, mientras está recibiendo eventos del ratón), perderá automáticamente el agarre del ratón, y el agarre no se recupera haciendo el ítem visible de nuevo; debe recibir una nueva pulsación del ratón para recuperar el agarre del ratón.
Del mismo modo, un elemento invisible no puede tener foco, por lo que si el elemento tiene foco cuando se vuelve invisible, perderá el foco, y el foco no se recupera simplemente haciendo el elemento visible de nuevo.
Si ocultas un elemento padre, todos sus hijos también se ocultarán. Si muestra un elemento padre, se mostrarán todos los hijos, a menos que se hayan ocultado explícitamente (es decir, si llama a setVisible(false) en un hijo, no se volverá a mostrar aunque se oculte su padre y luego se vuelva a mostrar).
Los elementos son visibles por defecto; no es necesario llamar a setVisible() en un nuevo elemento.
Nota: Un elemento con opacidad 0 seguirá considerándose visible, aunque se tratará como un elemento invisible: los eventos del ratón pasarán a través de él, no se incluirá en los elementos devueltos por QGraphicsView::items(), etcétera. Sin embargo, el elemento conservará el foco.
Véase también isVisible(), show(), hide() y setOpacity().
void QGraphicsItem::setX(qreal x)
Establece la coordenada x de la posición del elemento. Equivale a llamar a setPos(x, y()).
void QGraphicsItem::setY(qreal y)
Establece la coordenada y de la posición del elemento. Equivale a llamar a setPos(x(), y).
Véase también y(), x() y setPos().
void QGraphicsItem::setZValue(qreal z)
Establece el valor Z del elemento en z. El valor Z decide el orden de apilamiento de los elementos hermanos (vecinos). Un elemento hermano con un valor Z alto siempre se dibujará encima de otro elemento hermano con un valor Z más bajo.
Si restablece el valor Z, el orden de inserción del elemento decidirá su orden de apilamiento.
El valor Z no afecta en modo alguno al tamaño del elemento.
El valor Z por defecto es 0.
Véase también zValue(), Sorting, stackBefore(), y ItemStacksBehindParent.
[virtual] QPainterPath QGraphicsItem::shape() const
Devuelve la forma de este elemento como QPainterPath en coordenadas locales. La forma se utiliza para muchas cosas, incluyendo la detección de colisiones, pruebas de impacto, y para las funciones QGraphicsScene::items().
La implementación por defecto llama a boundingRect() para devolver una forma rectangular simple, pero las subclases pueden reimplementar esta función para devolver una forma más precisa para elementos no rectangulares. Por ejemplo, un elemento redondo puede elegir devolver una forma elíptica para una mejor detección de colisiones. Por ejemplo:
QPainterPath RoundItem::shape() const { QPainterPath path; path.addEllipse(boundingRect()); return path; }
El contorno de una forma puede variar en función de la anchura y el estilo del lápiz utilizado al dibujar. Si desea incluir este contorno en la forma del elemento, puede crear una forma a partir del trazo utilizando QPainterPathStroker.
Esta función es llamada por las implementaciones por defecto de contains() y collidesWithPath().
Véase también boundingRect(), contains(), prepareGeometryChange(), y QPainterPathStroker.
void QGraphicsItem::show()
Muestra el elemento (los elementos son visibles por defecto).
Esta función es equivalente a llamar a setVisible(true).
Véase también hide() y setVisible().
void QGraphicsItem::stackBefore(const QGraphicsItem *sibling)
Apila este elemento antes que sibling, lo que significa que este elemento se dibujará detrás del elemento hermano. En otras palabras, el elemento hermano aparecerá visualmente encima de este elemento.
Los dos elementos deben ser hermanos (es decir, deben compartir el mismo elemento padre, o ambos deben ser elementos de nivel superior). sibling debe tener el mismo valor Z que este elemento, de lo contrario la llamada a esta función no tendrá ningún efecto.
Por defecto, todos los elementos hermanos se apilan por orden de inserción (es decir, el primer elemento que añades se dibuja antes que el siguiente). Si los valores Z de dos elementos son diferentes, el elemento con el valor Z más alto se dibuja encima. Cuando los valores Z son iguales, el orden de inserción decidirá el orden de apilamiento.
Véase también setZValue(), ItemStacksBehindParent, y Sorting.
QGraphicsObject *QGraphicsItem::toGraphicsObject()
Devuelve el elemento gráfico convertido a QGraphicsObject, si la clase es realmente un objeto gráfico, 0 en caso contrario.
const QGraphicsObject *QGraphicsItem::toGraphicsObject() const
Devuelve el elemento gráfico convertido a QGraphicsObject, si la clase es realmente un objeto gráfico, 0 en caso contrario.
QString QGraphicsItem::toolTip() const
Devuelve el tool tip del elemento, o un QString vacío si no se ha establecido ningún tool tip.
Véase también setToolTip() y QToolTip.
QGraphicsItem *QGraphicsItem::topLevelItem() const
Devuelve el elemento de nivel superior de este elemento. El elemento de nivel superior es el elemento ancestro superior del elemento cuyo padre es nullptr. Si un elemento no tiene padre, se devuelve su propio puntero (es decir, un elemento de nivel superior es su propio elemento de nivel superior).
Véase también parentItem().
QGraphicsWidget *QGraphicsItem::topLevelWidget() const
Devuelve un puntero al widget de nivel superior del elemento (es decir, el ancestro del elemento cuyo padre es nullptr, o cuyo padre no es un widget), o nullptr si este elemento no tiene un widget de nivel superior. Si el elemento es su propio widget de nivel superior, esta función devuelve un puntero al propio elemento.
QTransform QGraphicsItem::transform() const
Devuelve la matriz de transformación de este elemento.
La matriz de transformación se combina con rotation(), scale() y transformations() del elemento en transformaciones combinadas para el elemento.
La matriz de transformación por defecto es una matriz de identidad.
Véase también setTransform() y sceneTransform().
QPointF QGraphicsItem::transformOriginPoint() const
Devuelve el punto de origen de la transformación en coordenadas de posición.
Por defecto es QPointF(0,0).
Véase también setTransformOriginPoint() y Transformations.
QList<QGraphicsTransform *> QGraphicsItem::transformations() const
Devuelve una lista de las transformaciones gráficas que se aplican actualmente a este elemento.
QGraphicsTransform es para aplicar y controlar una cadena de operaciones de transformación individuales sobre un elemento. Es particularmente útil en animaciones, donde cada operación de transformación necesita ser interpolada independientemente, o de forma diferente.
Las transformaciones se combinan con rotation(), scale() y transform() del elemento para asignar el sistema de coordenadas del elemento al elemento padre.
Véase también setTransformations(), scale(), rotation(), transformOriginPoint() y Transformations.
[virtual] int QGraphicsItem::type() const
Devuelve el tipo de un elemento como un int. Todas las clases estándar de graphicsitem están asociadas a un valor único; véase QGraphicsItem::Type. Esta información de tipo es utilizada por qgraphicsitem_cast() para distinguir entre tipos.
La implementación por defecto (en QGraphicsItem) devuelve UserType.
Para habilitar el uso de qgraphicsitem_cast() con un elemento personalizado, reimplemente esta función y declare un valor Type enum igual al tipo de su elemento personalizado. Los elementos personalizados deben devolver un valor mayor o igual que UserType (65536).
Por ejemplo:
class CustomItem : public QGraphicsItem { public: enum { Type = UserType + 1 }; int type() const override { // Enable the use of qgraphicsitem_cast with this item. return Type; } ... };
Véase también UserType.
void QGraphicsItem::ungrabKeyboard()
Libera el teclado.
Véase también grabKeyboard() y ungrabMouse().
void QGraphicsItem::ungrabMouse()
Libera el agarre del ratón.
Véase también grabMouse() y ungrabKeyboard().
void QGraphicsItem::unsetCursor()
Borra el cursor de este elemento.
Véase también hasCursor() y setCursor().
void QGraphicsItem::update(const QRectF &rect = QRectF())
Programa un redibujado del área cubierta por rect en este elemento. Puedes llamar a esta función siempre que tu elemento necesite ser redibujado, como por ejemplo si cambia de apariencia o tamaño.
Esta función no provoca un pintado inmediato, sino que programa una petición de pintado que es procesada por QGraphicsView después de que el control alcance el bucle de eventos. El elemento sólo se redibujará si es visible en cualquier vista asociada.
Como efecto secundario del repintado del elemento, otros elementos que se solapen con el área rect también pueden ser repintados.
Si el elemento es invisible (es decir, isVisible() devuelve false), esta función no hace nada.
Véase también paint() y boundingRect().
void QGraphicsItem::update(qreal x, qreal y, qreal width, qreal height)
Esta función es equivalente a llamar a update(QRectF(x, y, width, height)).
Se trata de una función sobrecargada.
[protected] void QGraphicsItem::updateMicroFocus()
Actualiza el microenfoque del elemento.
Véase también QInputMethod.
[virtual protected] void QGraphicsItem::wheelEvent(QGraphicsSceneWheelEvent *event)
Este manejador de eventos, para el evento event, puede ser reimplementado para recibir eventos de rueda para este elemento. Si reimplementas esta función, event será aceptada por defecto.
Si ignoras el evento, (por ejemplo, llamando a QEvent::ignore(),) se propagará a cualquier elemento por debajo de este elemento. Si ningún elemento acepta el evento, será ignorado por la escena, y se propagará a la vista (por ejemplo, la barra de desplazamiento vertical de la vista).
La implementación por defecto ignora el evento.
Véase también sceneEvent().
QGraphicsWidget *QGraphicsItem::window() const
Devuelve la ventana del elemento, o nullptr si este elemento no tiene ventana. Si el elemento es una ventana, se devolverá a sí mismo. Si no, devolverá el ancestro más cercano que sea una ventana.
Véase también QGraphicsWidget::isWindow().
qreal QGraphicsItem::x() const
Esta función es equivalente a llamar a pos().x().
qreal QGraphicsItem::y() const
Esta función es equivalente a llamar a pos().y().
qreal QGraphicsItem::zValue() const
Devuelve el valor Z del elemento. El valor Z afecta al orden de apilamiento de los elementos hermanos (vecinos).
El valor Z por defecto es 0.
Véase también setZValue(), Sorting, stackBefore(), y ItemStacksBehindParent.
No miembros relacionados
template <typename T> T qgraphicsitem_cast(QGraphicsItem *item)
Devuelve el item dado convertido a tipo T si item es de tipo T; en caso contrario, se devuelve nullptr.
Nota: Para que esta función funcione correctamente con elementos personalizados, reimplemente la función type() para cada subclase personalizada de QGraphicsItem.
Véase también QGraphicsItem::type() y QGraphicsItem::UserType.
© 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.