Spec-Zone.ru › Qt 5.6

Класс 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». Флаг accept устанавливается с помощью accept() и сбрасывается с помощью ignore(). Он установлен по умолчанию, но не полагайтесь на это, так как подклассы могут выбрать его сброс в конструкторе.

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

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

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

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

Это перечисление определяет допустимые типы событий в 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::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 Произошло двойное нажатие мыши вне области клиента.
QEvent::NonClientAreaMouseButtonPress 174 Произошло нажатие кнопки мыши вне области клиента.
QEvent::NonClientAreaMouseButtonRelease 175 Произошло отпускание кнопки мыши вне области клиента.
QEvent::NonClientAreaMouseMove 173 Произошло перемещение мыши вне области клиента.
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).
END_OF_DOCUMENT_MARKER
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::OkRequest 94 Нажата кнопка «ОК» в декоре. Поддерживается только для Windows CE.
QEvent::TabletEnterProximity 171 Событие приближения планшета Wacom (QTabletEvent), отправляется в QApplication.
QEvent::TabletLeaveProximity 172 Событие удаления планшета Wacom из близости (QTabletEvent), отправляется в QApplication.
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 указывает, что получатель события не хочет этого события. Нежелательные события могут быть проpropagated к родительскому виджету.

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

Spec-Zone.ru

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