Spec-Zone.ru › Qt

Класс 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

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

Типы public

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

Свойства

  • accepted : bool

Public Функции

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

Статические public члены

int registerEventType(int hint = -1)

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

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

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

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

Базовый QEvent содержит только параметр типа события и флаг "accept". Флаг accept устанавливается с помощью 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::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).
END_OF_DOCUMENT_MARKER
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(), а сбросить с помощью ignore().

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

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

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

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

QEvent::QEvent(QEvent::Type type)

Создает объект события типа type.

[virtual] QEvent::~QEvent()

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

void QEvent::accept()

Устанавливает флаг 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.2/qevent.html

Spec-Zone.ru

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