En esta página

QEvent Class

La clase QEvent es la clase base de todas las clases de eventos. Los objetos evento contienen parámetros de evento. Más...

Tipos Públicos

enum Type { None, ActionAdded, ActionChanged, ActionRemoved, ActivationChange, …, MaxUser }

Propiedades

Funciones públicas

QEvent(QEvent::Type type)
virtual ~QEvent()
void accept()
(since 6.0) virtual QEvent *clone() const
void ignore()
bool isAccepted() const
(since 6.0) bool isInputEvent() const
(since 6.0) bool isPointerEvent() const
(since 6.0) bool isSinglePointEvent() const
virtual void setAccepted(bool accepted)
bool spontaneous() const
QEvent::Type type() const

Miembros públicos estáticos

int registerEventType(int hint = -1)

Descripción Detallada

El bucle de eventos principal de Qt (QCoreApplication::exec()) obtiene eventos nativos del sistema de ventanas de la cola de eventos, los traduce a QEvents, y envía los eventos traducidos a QObjects.

En general, los eventos provienen del sistema de ventanas subyacente (spontaneous() devuelve true), pero también es posible enviar eventos manualmente utilizando QCoreApplication::sendEvent() y QCoreApplication::postEvent() (spontaneous() devuelve false).

QObjects reciben eventos llamando a su función QObject::event(). La función puede ser reimplementada en subclases para personalizar el manejo de eventos y añadir tipos de eventos adicionales; QWidget::event() es un ejemplo notable. Por defecto, los eventos se envían a manejadores de eventos como QObject::timerEvent() y QWidget::mouseMoveEvent(). QObject::installEventFilter() permite a un objeto interceptar eventos destinados a otro objeto.

El QEvent básico contiene sólo un parámetro de tipo de evento y una bandera "accept". La bandera de aceptación se activa con accept(), y se desactiva con ignore(). Está activada por defecto, pero no confíes en esto ya que las subclases pueden elegir desactivarla en su constructor.

Las subclases de QEvent contienen parametros adicionales que describen el evento en particular.

Ver también QObject::event(), QObject::installEventFilter(), QCoreApplication::sendEvent(), QCoreApplication::postEvent(), y QCoreApplication::processEvents().

Documentación de tipos de miembros

enum QEvent::Type

Este tipo enum define los tipos de eventos válidos en Qt. Los tipos de eventos y las clases especializadas para cada tipo son los siguientes:

ConstanteValorDescripción
QEvent::None0No es un evento.
QEvent::ActionAdded114Se ha añadido una nueva acción (QActionEvent).
QEvent::ActionChanged113Se ha modificado una acción (QActionEvent).
QEvent::ActionRemoved115Se ha eliminado una acción (QActionEvent).
QEvent::ActivationChange99El estado de activación de la ventana de nivel superior de un widget ha cambiado.
QEvent::ApplicationActivate121Este enum está obsoleto. Utiliza ApplicationStateChange en su lugar.
QEvent::ApplicationActivatedApplicationActivateEste enum ha quedado obsoleto. Utilice ApplicationStateChange en su lugar.
QEvent::ApplicationDeactivate122Este enum ha sido obsoleto. Utilice en su lugar ApplicationStateChange.
QEvent::ApplicationFontChange36La fuente predeterminada de la aplicación ha cambiado.
QEvent::ApplicationLayoutDirectionChange37La dirección del diseño de la aplicación por defecto ha cambiado.
QEvent::ApplicationPaletteChange38La paleta predeterminada de la aplicación ha cambiado.
QEvent::ApplicationStateChange214El estado de la aplicación ha cambiado.
QEvent::ApplicationWindowIconChange35El icono de la aplicación ha cambiado.
QEvent::ChildAdded68Un objeto obtiene un hijo (QChildEvent).
QEvent::ChildPolished69Un widget hijo se pule (QChildEvent).
QEvent::ChildRemoved71Un objeto pierde un hijo (QChildEvent).
QEvent::ChildWindowAdded (since Qt 6.7)223Se ha añadido una ventana hija a la ventana.
QEvent::ChildWindowRemoved (since Qt 6.7)224Se ha eliminado una ventana hija de la ventana.
QEvent::Clipboard40El contenido del portapapeles ha cambiado.
QEvent::Close19Se ha cerrado un widget (QCloseEvent).
QEvent::CloseSoftwareInputPanel200Un widget quiere cerrar el panel de entrada de software (SIP).
QEvent::ContentsRectChange178Los márgenes del contenido del widget rect cambiaron.
QEvent::ContextMenu82Menú contextual emergente (QContextMenuEvent).
QEvent::CursorChange183El cursor del widget ha cambiado.
QEvent::DeferredDelete52El objeto será borrado después de que se haya limpiado (QDeferredDeleteEvent)
QEvent::DevicePixelRatioChange (since Qt 6.6)222El devicePixelRatio ha cambiado para el almacén de respaldo subyacente de este widget o ventana.
QEvent::DragEnter60El cursor entra en un widget durante una operación de arrastrar y soltar (QDragEnterEvent).
QEvent::DragLeave62El cursor abandona un widget durante una operación de arrastrar y soltar (QDragLeaveEvent).
QEvent::DragMove61Una operación de arrastrar y soltar está en curso (QDragMoveEvent).
QEvent::Drop63Se ha completado una operación de arrastrar y soltar (QDropEvent).
QEvent::DynamicPropertyChange170Se ha añadido, modificado o eliminado una propiedad dinámica del objeto.
QEvent::EnabledChange98El estado activado del widget ha cambiado.
QEvent::Enter10El ratón entra en los límites del widget (QEnterEvent).
QEvent::EnterEditFocus150Un widget editor obtiene el foco para la edición. QT_KEYPAD_NAVIGATION debe estar definido.
QEvent::EnterWhatsThisMode124Se envía a los widgets de nivel superior cuando la aplicación entra en modo "¿Qué es esto?
QEvent::Expose206Enviado a una ventana cuando sus contenidos en pantalla son invalidados y necesitan ser vaciados del almacén de respaldo.
QEvent::FileOpen116Solicitud de apertura de archivo (QFileOpenEvent).
QEvent::FocusIn8El widget o la ventana obtiene el foco del teclado (QFocusEvent).
QEvent::FocusOut9Widget o ventana pierde el foco del teclado (QFocusEvent).
QEvent::FocusAboutToChange23El foco del widget o ventana está a punto de cambiar (QFocusEvent)
QEvent::FontChange97La fuente del widget ha cambiado.
QEvent::Gesture198Se ha activado un gesto (QGestureEvent).
QEvent::GestureOverride202Se ha activado una anulación de gesto (QGestureEvent).
QEvent::GrabKeyboard188El elemento se ha agarrado con el teclado (QGraphicsItem solamente).
QEvent::GrabMouse186El elemento se puede agarrar con el ratón (sólo enQGraphicsItem ).
QEvent::GraphicsSceneContextMenu159Menú contextual emergente sobre una escena gráfica (QGraphicsSceneContextMenuEvent).
QEvent::GraphicsSceneDragEnter164El cursor entra en una escena gráfica durante una operación de arrastrar y soltar (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragLeave166El cursor sale de una escena gráfica durante una operación de arrastrar y soltar (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragMove165Se está realizando una operación de arrastrar y soltar sobre una escena (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDrop167Se completa una operación de arrastrar y soltar sobre una escena (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneHelp163El usuario solicita ayuda para una escena gráfica (QHelpEvent).
QEvent::GraphicsSceneHoverEnter160El cursor del ratón entra en un elemento hover de una escena gráfica (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverLeave162El cursor del ratón abandona un elemento hover de una escena gráfica (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverMove161El cursor del ratón se mueve dentro de un elemento hover en una escena gráfica (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneMouseDoubleClick158Pulsar de nuevo el ratón (doble clic) en una escena gráfica (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseMove155Mover el ratón en una escena gráfica (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMousePress156Pulsar el ratón en una escena gráfica (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseRelease157Soltar el ratón en una escena gráfica (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMove182Se ha movido el widget (QGraphicsSceneMoveEvent).
QEvent::GraphicsSceneResize181Se ha cambiado el tamaño del widget (QGraphicsSceneResizeEvent).
QEvent::GraphicsSceneWheel168Rueda del ratón rodada en una escena gráfica (QGraphicsSceneWheelEvent).
QEvent::GraphicsSceneLeave220El cursor sale de una escena gráfica (QGraphicsSceneWheelEvent).
QEvent::Hide18Se ha ocultado el widget (QHideEvent).
QEvent::HideToParent27Se ha ocultado un widget hijo.
QEvent::HoverEnter127El cursor del ratón entra en un widget hover (QHoverEvent).
QEvent::HoverLeave128El cursor del ratón sale de un widget hover (QHoverEvent).
QEvent::HoverMove129El cursor del ratón se mueve dentro de un widget hover (QHoverEvent).
QEvent::IconDrag96El icono principal de una ventana ha sido arrastrado (QIconDragEvent).
QEvent::IconTextChange101Se ha cambiado el texto del icono del widget. (obsoleto)
QEvent::InputMethod83Se está utilizando un método de entrada (QInputMethodEvent).
QEvent::InputMethodQuery207Evento de consulta de un método de entrada (QInputMethodQueryEvent)
QEvent::KeyboardLayoutChange169La disposición del teclado ha cambiado.
QEvent::KeyPress6Pulsación de tecla (QKeyEvent).
QEvent::KeyRelease7Liberación de tecla (QKeyEvent).
QEvent::LanguageChange89La traducción de la aplicación ha cambiado.
QEvent::LayoutDirectionChange90La dirección de los layouts cambió.
QEvent::LayoutRequest76Hay que rehacer la disposición del widget.
QEvent::Leave11El ratón sale de los límites del widget.
QEvent::LeaveEditFocus151Un widget editor pierde el foco de edición. Debe definirse QT_KEYPAD_NAVIGATION.
QEvent::LeaveWhatsThisMode125Enviar a widgets de nivel superior cuando la aplicación abandona el modo "¿Qué es esto?
QEvent::LocaleChange88La configuración regional del sistema ha cambiado.
QEvent::NonClientAreaMouseButtonDblClick176Se ha producido un doble clic del ratón fuera del área del cliente (QMouseEvent).
QEvent::NonClientAreaMouseButtonPress174Se ha pulsado un botón del ratón fuera del área del cliente (QMouseEvent).
QEvent::NonClientAreaMouseButtonRelease175Se ha soltado un botón del ratón fuera del área del cliente (QMouseEvent).
QEvent::NonClientAreaMouseMove173Se ha producido un movimiento del ratón fuera del área del cliente (QMouseEvent).
QEvent::MacSizeChange177El usuario cambió el tamaño de sus widgets (sólo macOS).
QEvent::MetaCall43Una invocación de método asíncrono a través de QMetaObject::invokeMethod().
QEvent::ModifiedChange102Se ha cambiado el estado de modificación de los widgets.
QEvent::MouseButtonDblClick4Pulsación del ratón de nuevo (QMouseEvent).
QEvent::MouseButtonPress2Pulsación del ratón (QMouseEvent).
QEvent::MouseButtonRelease3Soltar el ratón (QMouseEvent).
QEvent::MouseMove5Movimiento del ratón (QMouseEvent).
QEvent::MouseTrackingChange109Se ha cambiado el estado de seguimiento del ratón.
QEvent::Move13La posición del widget ha cambiado (QMoveEvent).
QEvent::NativeGesture197El sistema ha detectado un gesto (QNativeGestureEvent).
QEvent::OrientationChange208La orientación de la pantalla ha cambiado (QScreenOrientationChangeEvent).
QEvent::Paint12Es necesario actualizar la pantalla (QPaintEvent).
QEvent::PaletteChange39La paleta del widget ha cambiado.
QEvent::ParentAboutToChange131El padre del objeto está a punto de cambiar. Sólo se envía a algunos tipos de objeto, como QWidget.
QEvent::ParentChange21El objeto padre ha cambiado. Sólo se envía a algunos tipos de objeto, como QWidget.
QEvent::ParentWindowAboutToChange (since Qt 6.7)225La ventana padre está a punto de cambiar.
QEvent::ParentWindowChange (since Qt 6.7)226La ventana padre ha cambiado.
QEvent::PlatformPanel212Se ha solicitado un panel específico de la plataforma.
QEvent::PlatformSurface217Se ha creado o está a punto de destruirse una superficie nativa de la plataforma (QPlatformSurfaceEvent).
QEvent::Polish75El widget está pulido.
QEvent::PolishRequest74El widget debería ser pulido.
QEvent::QueryWhatsThis123El widget debería aceptar el evento si tiene la ayuda "¿Qué es esto?" (QHelpEvent).
QEvent::Quit20La aplicación ha salido.
QEvent::ReadOnlyChange (since Qt 5.4)106El estado de sólo lectura del widget ha cambiado.
QEvent::RequestSoftwareInputPanel199Un widget quiere abrir un panel de entrada de software (SIP).
QEvent::Resize14El tamaño del widget ha cambiado (QResizeEvent).
QEvent::ScrollPrepare204El objeto necesita rellenar su información geométrica (QScrollPrepareEvent).
QEvent::Scroll205El objeto necesita desplazarse a la posición suministrada (QScrollEvent).
QEvent::Shortcut117Pulsación de tecla en el hijo para manejo de atajos de teclado (QShortcutEvent).
QEvent::ShortcutOverride51Pulsación de tecla en el hijo, para anular el manejo de la tecla de acceso directo (QKeyEvent). Cuando un acceso directo está a punto de activarse, se envía ShortcutOverride a la ventana activa. Esto permite a los clientes (por ejemplo, widgets) indicar que ellos mismos gestionarán el acceso directo, aceptando el evento. Si se acepta la anulación del acceso directo, el evento se envía como una pulsación de tecla normal al widget enfocado. De lo contrario, activa la acción de acceso directo, si existe.
QEvent::Show17El widget se ha mostrado en pantalla (QShowEvent).
QEvent::ShowToParent26Se ha mostrado un widget hijo.
QEvent::SockAct50Socket activado, utilizado para implementar QSocketNotifier.
QEvent::StateMachineSignal192Una señal entregada a una máquina de estados (QStateMachine::SignalEvent).
QEvent::StateMachineWrapped193El evento es una envoltura para, es decir, contiene, otro evento (QStateMachine::WrappedEvent).
QEvent::StatusTip112Se solicita una información de estado (QStatusTipEvent).
QEvent::StyleChange100Se ha cambiado el estilo del widget.
QEvent::TabletMove87La tableta Wacom se mueve (QTabletEvent).
QEvent::TabletPress92Pulsación de la tableta Wacom (QTabletEvent).
QEvent::TabletRelease93Liberación de la tableta Wacom (QTabletEvent).
QEvent::TabletEnterProximity171La tableta Wacom entra en el evento de proximidad (QTabletEvent), enviado a QApplication.
QEvent::TabletLeaveProximity172La tableta Wacom abandona el evento de proximidad (QTabletEvent), enviado a QApplication.
QEvent::TabletTrackingChange (since Qt 5.9)219El estado de seguimiento de la tableta Wacom ha cambiado.
QEvent::ThreadChange22El objeto se mueve a otro hilo. Este es el último evento enviado a este objeto en el hilo anterior. Ver QObject::moveToThread().
QEvent::Timer1Eventos regulares del temporizador (QTimerEvent).
QEvent::ToolBarChange120El botón de la barra de herramientas se activa en macOS.
QEvent::ToolTip110Se ha solicitado un tooltip (QHelpEvent).
QEvent::ToolTipChange184La información sobre herramientas del widget ha cambiado.
QEvent::TouchBegin194Inicio de una secuencia de eventos de pantalla táctil o track-pad (QTouchEvent).
QEvent::TouchCancel209Cancelación de una secuencia de eventos táctiles (QTouchEvent).
QEvent::TouchEnd196Fin de una secuencia de eventos táctiles (QTouchEvent).
QEvent::TouchUpdate195Evento de pantalla táctil (QTouchEvent).
QEvent::UngrabKeyboard189El elemento pierde el agarre del teclado (QGraphicsItem solamente).
QEvent::UngrabMouse187El elemento pierde el agarre del ratón (QGraphicsItem, QQuickItem).
QEvent::UpdateLater78El widget debe ponerse en cola para ser repintado en otro momento.
QEvent::UpdateRequest77El widget debe volver a pintarse.
QEvent::WhatsThis111El widget debe mostrar la ayuda "¿Qué es esto?" (QHelpEvent).
QEvent::WhatsThisClicked118Se ha hecho clic en un enlace de la ayuda "¿Qué es esto?" de un widget.
QEvent::Wheel31La rueda del ratón ha rodado (QWheelEvent).
QEvent::WinEventAct132Se ha producido un evento de activación específico de Windows.
QEvent::WindowActivate24Se ha activado una ventana.
QEvent::WindowBlocked103La ventana está bloqueada por un diálogo modal.
QEvent::WindowDeactivate25Se ha desactivado la ventana.
QEvent::WindowIconChange34El icono de la ventana ha cambiado.
QEvent::WindowStateChange105El window's state (minimizado, maximizado o pantalla completa) ha cambiado (QWindowStateChangeEvent).
QEvent::WindowTitleChange33El título de la ventana ha cambiado.
QEvent::WindowUnblocked104La ventana se ha desbloqueado tras salir de un diálogo modal.
QEvent::WinIdChange203El identificador del sistema de ventanas para este widget nativo ha cambiado.
QEvent::ZOrderChange126El orden z del widget ha cambiado. Este evento nunca se envía a las ventanas de nivel superior.
QEvent::SafeAreaMarginsChange (since Qt 6.9)227Los márgenes del área segura de la ventana han cambiado.

Los eventos de usuario deben tener valores entre User y MaxUser:

ConstanteValorDescripción
QEvent::User1000Evento definido por el usuario.
QEvent::MaxUser65535ID del último evento de usuario.

Para mayor comodidad, puede utilizar la función registerEventType() para registrar y reservar un tipo de evento personalizado para su aplicación. De este modo evitará reutilizar accidentalmente un tipo de evento personalizado que ya esté en uso en otra parte de su aplicación.

Documentación de propiedades

accepted : bool

Esta propiedad contiene la bandera de aceptación del objeto evento.

Establecer el parámetro de aceptación indica que el receptor del evento quiere el evento. Los eventos no deseados pueden ser propagados al widget padre. Por defecto, isAccepted() está establecido a true, pero no confíes en esto ya que las subclases pueden elegir borrarlo en su constructor.

Por conveniencia, la bandera de aceptación también puede ser activada con accept(), y desactivada con ignore().

Nota: Aceptar un QPointerEvent implícitamente accepts todos los points que lleve el evento.

Funciones de acceso:

bool isAccepted() const
virtual void setAccepted(bool accepted)

Documentación de funciones miembro

[explicit] QEvent::QEvent(QEvent::Type type)

Construye un objeto de evento de tipo type.

[virtual noexcept] QEvent::~QEvent()

Destruye el evento. Si era posted, se eliminará de la lista de eventos a publicar.

void QEvent::accept()

Establece la bandera de aceptación del objeto de evento, el equivalente a llamar a setAccepted(true).

Establecer el parámetro de aceptación indica que el receptor del evento quiere el evento. Los eventos no deseados podrían propagarse al widget padre.

Véase también ignore().

[virtual, since 6.0] QEvent *QEvent::clone() const

Crea y devuelve una copia idéntica de este evento.

Esta función se introdujo en Qt 6.0.

void QEvent::ignore()

Borra el parámetro accept flag del objeto de evento, el equivalente a llamar a setAccepted(false).

Borrar el parámetro accept indica que el receptor del evento no quiere el evento. Los eventos no deseados pueden propagarse al widget padre.

Véase también accept().

[noexcept, since 6.0] bool QEvent::isInputEvent() const

Devuelve true si el objeto de evento es un QInputEvent o una de sus subclases.

Esta función se introdujo en Qt 6.0.

[noexcept, since 6.0] bool QEvent::isPointerEvent() const

Devuelve true si el objeto de evento es un QPointerEvent o una de sus subclases.

Esta función se introdujo en Qt 6.0.

[noexcept, since 6.0] bool QEvent::isSinglePointEvent() const

Devuelve true si el objeto de evento es una subclase de QSinglePointEvent.

Esta función se introdujo en Qt 6.0.

[static noexcept] int QEvent::registerEventType(int hint = -1)

Registra y devuelve un tipo de evento personalizado. El hint proporcionado se utilizará si está disponible, de lo contrario devolverá un valor entre QEvent::User y QEvent::MaxUser que aún no se haya registrado. El hint se ignora si su valor no está entre QEvent::User y QEvent::MaxUser.

Devuelve -1 si todos los valores disponibles ya están tomados o el programa se está cerrando.

Nota: Esta función es thread-safe.

bool QEvent::spontaneous() const

Devuelve true si el evento se originó fuera de la aplicación (un evento del sistema); en caso contrario devuelve false.

QEvent::Type QEvent::type() const

Devuelve el tipo de evento.

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