Spec-Zone.ru › Qt 6.1

Класс QEvent

Класс QEvent является базовым классом всех классов событий. Объекты событий содержат параметры событий. Подробнее...

Заголовок: #include <QEvent>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Наследуется от:

QActionEvent, QChildEvent, QCloseEvent, QDragLeaveEvent, QDropEvent, QDynamicPropertyChangeEvent, QExposeEvent, QFileOpenEvent, QFocusEvent, QGestureEvent, QGraphicsSceneEvent, QHelpEvent, QHideEvent, QIconDragEvent, QInputEvent, QInputMethodEvent, QInputMethodQueryEvent, QMoveEvent, QPaintEvent, QPlatformSurfaceEvent, QResizeEvent, QScrollEvent, QScrollPrepareEvent, QShortcutEvent, QShowEvent, QStateMachine::SignalEvent, QStateMachine::WrappedEvent, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent и QWindowStateChangeEvent

  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление Type { None, ActionAdded, ActionChanged, ActionRemoved, ActivationChange, …, MaxUser }

Свойства

  • accepted : bool

Публичные функции

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

Статические публичные члены

int registerEventType(int hint = -1)

Подробное описание

Основной цикл обработки событий Qt (QCoreApplication::exec()) извлекает события из очереди событий, переводит их в QEvents и отправляет переведенные события объектам QObject.

В общем случае события поступают из базовой системы окон (spontaneous() возвращает true), но также возможно отправлять события вручную с помощью QCoreApplication::sendEvent() и QCoreApplication::postEvent() (spontaneous() возвращает false).

QObjects получают события, вызывая их функцию QObject::event(). Функцию можно переопределять в подклассах для настройки обработки событий и добавления дополнительных типов событий; QWidget::event() является заметным примером. По умолчанию события направляются обработчикам событий, таким как QObject::timerEvent() и QWidget::mouseMoveEvent(). QObject::installEventFilter() позволяет одному объекту перехватывать события, предназначенные для другого объекта.

Базовое QEvent содержит только параметр типа события и флаг «принять». Флаг «принять» устанавливается с помощью accept() и сбрасывается с помощью ignore(). Он устанавливается по умолчанию, но не полагайтесь на это, так как подклассы могут сбросить его в своем конструкторе.

Подклассы QEvent содержат дополнительные параметры, которые описывают конкретное событие.

См. также QObject::event(), QObject::installEventFilter(), QCoreApplication::sendEvent(), QCoreApplication::postEvent() и QCoreApplication::processEvents().

Документация по типу члена

перечисление QEvent::Type

Это перечисление определяет допустимые типы событий в Qt. Типы событий и специализированные классы для каждого типа представлены ниже:

Постоянная Значение Описание
QEvent::None 0 Не событие.
QEvent::ActionAdded 114 Добавлен новый параметр (QActionEvent).
QEvent::ActionChanged 113 Изменено действие (QActionEvent).
QEvent::ActionRemoved 115 Удалено действие (QActionEvent).
QEvent::ActivationChange 99 Изменилось состояние активации главного окна виджета.
QEvent::ApplicationActivate 121 Этот перечисление устарело. Используйте ApplicationStateChange вместо него.
QEvent::ApplicationActivated ApplicationActivate Этот перечисление устарело. Используйте ApplicationStateChange вместо него.
QEvent::ApplicationDeactivate 122 Этот перечисление устарело. Используйте ApplicationStateChange вместо него.
QEvent::ApplicationFontChange 36 Изменился шрифт по умолчанию приложения.
QEvent::ApplicationLayoutDirectionChange 37 Изменилось направление макета приложения по умолчанию.
QEvent::ApplicationPaletteChange 38 Изменилась палитра приложения по умолчанию.
QEvent::ApplicationStateChange 214 Изменилось состояние приложения.
QEvent::ApplicationWindowIconChange 35 Изменился значок приложения.
QEvent::ChildAdded 68 Объект получает дочерний элемент (QChildEvent).
QEvent::ChildPolished 69 Дочерний элемент виджета отполирован (QChildEvent).
QEvent::ChildRemoved 71 Объект теряет дочерний элемент (QChildEvent).
QEvent::Clipboard 40 Изменилось содержимое буфера обмена.
QEvent::Close 19 Виджет закрыт (QCloseEvent).
QEvent::CloseSoftwareInputPanel 200 Виджет хочет закрыть панель ввода программного обеспечения (SIP).
QEvent::ContentsRectChange 178 Изменились отступы прямоугольника содержимого виджета.
QEvent::ContextMenu 82 Контекстное всплывающее меню (QContextMenuEvent).
QEvent::CursorChange 183 Курсор виджета изменился.
QEvent::DeferredDelete 52 Объект будет удалён после завершения очистки (QDeferredDeleteEvent)
QEvent::DragEnter 60 Курсор входит в виджет во время операции перетаскивания (QDragEnterEvent).
QEvent::DragLeave 62 Курсор выходит из виджета во время операции перетаскивания (QDragLeaveEvent).
QEvent::DragMove 61 Операция перетаскивания в процессе (QDragMoveEvent).
QEvent::Drop 63 Операция перетаскивания завершена (QDropEvent).
QEvent::DynamicPropertyChange 170 Динамическое свойство было добавлено, изменено или удалено из объекта.
QEvent::EnabledChange 98 Изменилось состояние активности виджета.
QEvent::Enter 10 Мышь входит в границы виджета (QEnterEvent).
QEvent::EnterEditFocus 150 Редактор-виджет получает фокус для редактирования. QT_KEYPAD_NAVIGATION должно быть определено.
QEvent::EnterWhatsThisMode 124 Отправляется верхним виджетам, когда приложение входит в режим «Что это?».
QEvent::Expose 206 Отправляется окну, когда его содержимое на экране недействительно и его нужно сбросить из буфера.
QEvent::FileOpen 116 Запрос открытия файла (QFileOpenEvent).
QEvent::FocusIn 8 Виджет или окно получают фокус клавиатуры (QFocusEvent).
QEvent::FocusOut 9 Виджет или окно теряют фокус клавиатуры (QFocusEvent).
QEvent::FocusAboutToChange 23 Фокус виджета или окна собирается измениться (QFocusEvent)
QEvent::FontChange 97 Изменился шрифт виджета.
QEvent::Gesture 198 Сработало жестикуляционное событие (QGestureEvent).
QEvent::GestureOverride 202 Сработало перекрытие жестикуляционного события (QGestureEvent).
QEvent::GrabKeyboard 188 Элемент получает захват клавиатуры (QGraphicsItem только).
QEvent::GrabMouse 186 Элемент получает захват мыши (QGraphicsItem только).
QEvent::GraphicsSceneContextMenu 159 Контекстное всплывающее меню над графической сценой (QGraphicsSceneContextMenuEvent).
QEvent::GraphicsSceneDragEnter 164 Курсор входит в графическую сцену во время операции перетаскивания (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragLeave 166 Курсор выходит из графической сцены во время операции перетаскивания (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragMove 165 Операция перетаскивания в процессе над сценой (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDrop 167 Операция перетаскивания завершена над сценой (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneHelp 163 Пользователь запрашивает справку по графической сцене (QHelpEvent).
QEvent::GraphicsSceneHoverEnter 160 Курсор мыши входит в элемент-прицел на графической сцене (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverLeave 162 Курсор мыши выходит из элемента-прицела на графической сцене (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverMove 161 Курсор мыши перемещается внутри элемента-прицела на графической сцене (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneMouseDoubleClick 158 Нажатие мыши повторно (двойной щелчок) на графической сцене (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseMove 155 Движение мыши в графической сцене (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMousePress 156 Нажатие мыши в графической сцене (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseRelease 157 Отпускание мыши в графической сцене (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMove 182 Виджет был перемещен (QGraphicsSceneMoveEvent).
QEvent::GraphicsSceneResize 181 Виджет был изменен по размеру (QGraphicsSceneResizeEvent).
QEvent::GraphicsSceneWheel 168 Колесо мыши прокручено в графической сцене (QGraphicsSceneWheelEvent).
QEvent::GraphicsSceneLeave 220 Курсор мыши покидает графическую сцену (QGraphicsSceneWheelEvent).
QEvent::Hide 18 Виджет был скрыт (QHideEvent).
QEvent::HideToParent 27 Дочерний виджет был скрыт.
QEvent::HoverEnter 127 Курсор мыши входит в область виджета наведения (QHoverEvent).
QEvent::HoverLeave 128 Курсор мыши покидает область виджета наведения (QHoverEvent).
QEvent::HoverMove 129 Курсор мыши перемещается внутри области виджета наведения (QHoverEvent).
QEvent::IconDrag 96 Основной значок окна был перетащен (QIconDragEvent).
QEvent::IconTextChange 101 Текст значка виджета был изменен. (Устарело)
QEvent::InputMethod 83 Используется метод ввода (QInputMethodEvent).
QEvent::InputMethodQuery 207 Событие запроса метода ввода (QInputMethodQueryEvent)
QEvent::KeyboardLayoutChange 169 Изменилась раскладка клавиатуры.
QEvent::KeyPress 6 Нажатие клавиши (QKeyEvent).
QEvent::KeyRelease 7 Отпускание клавиши (QKeyEvent).
QEvent::LanguageChange 89 Изменился перевод приложения.
QEvent::LayoutDirectionChange 90 Изменилось направление макета.
QEvent::LayoutRequest 76 Требуется перестроение макета виджета.
QEvent::Leave 11 Курсор мыши выходит за границы виджета.
QEvent::LeaveEditFocus 151 Виджет редактора теряет фокус для редактирования. QT_KEYPAD_NAVIGATION должно быть определено.
QEvent::LeaveWhatsThisMode 125 Отправка виджетам верхнего уровня при выходе из режима «Что это?».
QEvent::LocaleChange 88 Изменился системный регион.
QEvent::NonClientAreaMouseButtonDblClick 176 Произошел двойной щелчок мыши за пределами области клиента (QMouseEvent).
QEvent::NonClientAreaMouseButtonPress 174 Произошло нажатие кнопки мыши за пределами области клиента (QMouseEvent).
QEvent::NonClientAreaMouseButtonRelease 175 Произошло отпускание кнопки мыши за пределами области клиента (QMouseEvent).
QEvent::NonClientAreaMouseMove 173 Произошло перемещение мыши за пределами области клиента (QMouseEvent).
QEvent::MacSizeChange 177 Пользователь изменил размеры своего виджета (только macOS).
QEvent::MetaCall 43 Асинхронное вызов метода через QMetaObject::invokeMethod().
QEvent::ModifiedChange 102 Состояние изменения виджетов было изменено.
QEvent::MouseButtonDblClick 4 Нажатие кнопки мыши еще раз (QMouseEvent).
QEvent::MouseButtonPress 2 Нажатие кнопки мыши (QMouseEvent).
QEvent::MouseButtonRelease 3 Отпускание кнопки мыши (QMouseEvent).
QEvent::MouseMove 5 Перемещение мыши (QMouseEvent).
QEvent::MouseTrackingChange 109 Состояние отслеживания мыши изменилось.
QEvent::Move 13 Изменилось положение виджета (QMoveEvent).
QEvent::NativeGesture 197 Система обнаружила жест (QNativeGestureEvent).
QEvent::OrientationChange 208 Изменилась ориентация экрана (QScreenOrientationChangeEvent).
QEvent::Paint 12 Необходим перерисовка экрана (QPaintEvent).
QEvent::PaletteChange 39 Изменилась палитра виджета.
QEvent::ParentAboutToChange 131 Родительский виджет виджета собирается измениться.
QEvent::ParentChange 21 Родительский виджет виджета изменился.
QEvent::PlatformPanel 212 Запрошен платформный специфичный элемент управления.
QEvent::PlatformSurface 217 Создана или собирается быть уничтожена нативная платформа поверхности (QPlatformSurfaceEvent).
QEvent::PolishRequest 74 Виджет должен быть отполирован.
QEvent::QueryWhatsThis 123 Виджет должен принять событие, если у него есть помощь «Что это?» (QHelpEvent).
QEvent::ReadOnlyChange 106 Состояние только для чтения виджета изменилось (с Qt 5.4).
QEvent::RequestSoftwareInputPanel 199 Виджет хочет открыть панель ввода программного обеспечения (SIP).
QEvent::Resize 14 Изменился размер виджета (QResizeEvent).
QEvent::ScrollPrepare 204 Объект должен заполнить информацию о своей геометрии (QScrollPrepareEvent).
QEvent::Scroll 205 Объект должен прокрутить до заданной позиции (QScrollEvent).
QEvent::Shortcut 117 Нажатие клавиши в дочернем элементе для обработки сочетания клавиш (QShortcutEvent).
QEvent::ShortcutOverride 51 Нажатие клавиши в дочернем элементе для переопределения обработки сочетаний клавиш (QKeyEvent). Приближается сочетание клавиш, ShortcutOverride отправляется активному окну. Это позволяет клиентам (например, виджетам) сигнализировать, что они будут обрабатывать сочетание клавиш самостоятельно, приняв событие. Если переопределение сочетания клавиш принято, событие передается как обычное нажатие клавиши на виджет, имеющий фокус. В противном случае, срабатывает действие сочетания клавиш, если оно существует.
QEvent::Show 17 Виджет был показан на экране (QShowEvent).
QEvent::ShowToParent 26 Дочерний виджет был показан.
QEvent::SockAct 50 Сокет активирован, используется для реализации QSocketNotifier.
QEvent::StateMachineWrapped 193 Событие является оболочкой, т.е. содержит другое событие (QStateMachine::WrappedEvent).
QEvent::StatusTip 112 Запрошен всплывающая подсказка статуса (QStatusTipEvent).
QEvent::StyleChange 100 Стиль виджета был изменён.
QEvent::TabletMove 87 Движение планшета Wacom (QTabletEvent).
QEvent::TabletPress 92 Нажатие на планшет Wacom (QTabletEvent).
QEvent::TabletRelease 93 Отпускание планшета Wacom (QTabletEvent).
QEvent::TabletLeaveProximity 172 Событие удаления планшета Wacom из близости (QTabletEvent), отправленное в QApplication.
QEvent::TabletTrackingChange 219 Изменилось состояние отслеживания планшета Wacom (с Qt 5.9).
QEvent::Timer 1 Регулярные события таймера (QTimerEvent).
QEvent::ToolBarChange 120 Кнопка на панели инструментов переключается на macOS.
QEvent::ToolTip 110 Запрошена подсказка (QHelpEvent).
QEvent::ToolTipChange 184 Подсказка виджета была изменена.
QEvent::TouchBegin 194 Начало последовательности событий сенсорного экрана или трекпада (QTouchEvent).
QEvent::TouchCancel 209 Отмена последовательности событий касания (QTouchEvent).
QEvent::TouchEnd 196 Конец последовательности событий касания (QTouchEvent).
QEvent::TouchUpdate 195 Событие сенсорного экрана (QTouchEvent).
QEvent::UngrabKeyboard 189 Элемент теряет захват клавиатуры (только QGraphicsItem).
QEvent::UngrabMouse 187 Элемент теряет захват мыши (QGraphicsItem, QQuickItem).
QEvent::UpdateLater 78 Виджет должен быть помещен в очередь для перерисовки в более позднее время.
QEvent::UpdateRequest 77 Виджет должен быть перерисован.
QEvent::WhatsThis 111 Виджет должен отобразить справку "Что это?" (QHelpEvent).
QEvent::WhatsThisClicked 118 Была нажата ссылка в подсказке "Что это?".
QEvent::Wheel 31 Прокрутка колёсика мыши (QWheelEvent).
QEvent::WinEventAct 132 Произошло событие активации, специфичное для Windows.
QEvent::WindowActivate 24 Окно было активировано.
QEvent::WindowBlocked 103 Окно заблокировано модальным диалоговым окном.
QEvent::WindowDeactivate 25 Окно было деактивировано.
QEvent::WindowIconChange 34 Изменён значок окна.
QEvent::WindowStateChange 105 Изменилось состояние окна (минимизированное, максимизированное или полноэкранное) (QWindowStateChangeEvent).
QEvent::WindowTitleChange 33 Изменено заголовок окна.
QEvent::WindowUnblocked 104 Окно разблокировано после выхода модального диалогового окна.
QEvent::WinIdChange 203 Изменился идентификатор системы окон для этого нативного виджета.
QEvent::ZOrderChange 126 Изменился порядок виджетов по z-индексу. Это событие никогда не отправляется для окон верхнего уровня.

События пользователя должны иметь значения между User и MaxUser:

Константа Значение Описание
QEvent::User 1000 Пользовательское событие.
QEvent::MaxUser 65535 Идентификатор последнего пользовательского события.

Для удобства вы можете использовать функцию registerEventType(), чтобы зарегистрировать и зарезервировать тип пользовательского события для вашего приложения. Это поможет избежать случайного повторного использования типа пользовательского события, уже используемого в другом месте вашего приложения.

Документация по свойствам

accepted : bool

Это свойство содержит флаг принятия события объекта.

Установка параметра accept указывает, что получатель события желает обработать событие. Нежелательные события могут быть переданы родительскому виджету. По умолчанию, isAccepted() устанавливается в true, но не полагайтесь на это, так как подклассы могут сбросить его в своём конструкторе.

Для удобства, флаг принятия также можно установить с помощью accept(), и сбросить с помощью ignore().

Примечание: Принятие QPointerEvent неявно принимает все точки, которые содержит событие.

Функции доступа:

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

Документация по членам-функциям

QEvent::QEvent(QEvent::Type type)

Конструирует объект события типа type.

[virtual] QEvent::~QEvent()

Уничтожает событие. Если оно было опубликовано, оно будет удалено из списка событий, которые нужно опубликовать.

void QEvent::accept()

Устанавливает флаг принятия события объекта, что эквивалентно вызову setAccepted(true).

Установка параметра accept указывает, что получатель события желает обработать событие. Нежелательные события могут быть переданы родительскому виджету.

См. также ignore().

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

Создаёт и возвращает идентичную копию этого события.

Эта функция была добавлена в Qt 6.0.

void QEvent::ignore()

Очищает параметр accept события, что эквивалентно вызову setAccepted(false).

Очистка параметра accept указывает, что получатель события не хочет обрабатывать его. Нежелательные события могут быть переданы родительскому виджету.

См. такжеaccept().

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

Возвращает true, если объект события является QInputEvent или одним из его подклассов.

Эта функция была добавлена в Qt 6.0.

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

Возвращает true, если объект события является QPointerEvent или одним из его подклассов.

Эта функция была добавлена в Qt 6.0.

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

Возвращает true, если объект события является подклассом QSinglePointEvent.

Эта функция была добавлена в Qt 6.0.

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

Регистрирует и возвращает тип пользовательского события. Предоставленное значение hint будет использоваться, если доступно, в противном случае возвращается значение от QEvent::User до QEvent::MaxUser, которое еще не зарегистрировано. Значение hint игнорируется, если оно не находится в диапазоне от QEvent::User до QEvent::MaxUser.

Возвращает -1, если все доступные значения уже заняты или программа завершается.

Примечание: Эта функция безопасна для потоков.

bool QEvent::spontaneous() const

Возвращает true, если событие возникло вне приложения (система); в противном случае возвращает false.

QEvent::Type QEvent::type() const

Возвращает тип события.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qevent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API