Spec-Zone.ru › Qt 5.9

Класс QEvent

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

Заголовок: #include <QEvent>
qmake: QT += core
Наследуется от:

QActionEvent, QChildEvent, QCloseEvent, QDragLeaveEvent, QDropEvent, QDynamicPropertyChangeEvent, QEnterEvent, 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, ..., MaxUser }

Свойства

  • accepted : bool

Открытые функции

QEvent(Type type)
virtual ~QEvent()
void accept()
void ignore()
bool isAccepted() const
void setAccepted(bool accepted)
bool spontaneous() const
Type type() const

Статические открытые члены

int registerEventType(int hint = -1)

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

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

Основной цикл обработки событий 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::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 Виджет должен принять событие, если у него есть справка «Что это?».
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).
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().

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

bool isAccepted() const
void setAccepted(bool accepted)

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

QEvent::QEvent(Type type)

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

[virtual] QEvent::~QEvent()

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

void QEvent::accept()

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

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

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

void QEvent::ignore()

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

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

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

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

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

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

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

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

bool QEvent::spontaneous() const

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

Значение, возвращаемое этой функцией, не определено для событий рисования.

Type QEvent::type() const

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

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

Spec-Zone.ru

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