Spec-Zone.ru › Qt 6.0

Класс 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, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent и QWindowStateChangeEvent

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

Публичные типы

перечисление Тип { Нет, ActionAdded, ActionChanged, ActionRemoved, ActivationChange, …, MaxUser }

Свойства

  • accepted : bool

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

QEvent(QEvent::Type type)
виртуальный ~QEvent()
void accept()
виртуальный QEvent * clone() const
void ignore()
bool isAccepted() const
bool isInputEvent() const
bool isPointerEvent() const
bool isSinglePointEvent() const
виртуальный 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::Тип

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

Константа Значение Описание
QEvent::None 0 Не событие.
QEvent::ActionAdded 114 Добавлен новый action (QActionEvent).
QEvent::ActionChanged 113 Изменён action (QActionEvent).
QEvent::ActionRemoved 115 Удален action (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::Polish 75 Элемент отполирован.
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::StateMachineSignal 192 Сигнал передан в состояние машины (QStateMachine::SignalEvent).
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::TabletEnterProximity 171 Событие приближения планшета Wacom (QTabletEvent), отправлено в QApplication.
QEvent::TabletLeaveProximity 172 Событие удаления планшета Wacom из зоны действия (QTabletEvent), отправлено в QApplication.
QEvent::TabletTrackingChange 219 Изменилось состояние отслеживания планшета Wacom (с Qt 5.9).
QEvent::ThreadChange 22 Объект перемещён в другую нить. Это последнее событие, отправленное этому объекту в предыдущей нити. См. QObject::moveToThread().
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 также можно установить с помощью 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).

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

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

[virtual] QEvent *QEvent::clone() const

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

void QEvent::ignore()

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

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

См. также 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.0/qevent.html

Spec-Zone.ru

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