Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Класс QEvent является базовым классом для всех классов сообщений. Объекты сообщений содержат параметры сообщений. Далее...
#include <QEvent>
Наследуется QAccessibleEvent, QActionEvent, QChildEvent, QCloseEvent, QCustomEvent, QDragLeaveEvent, QDropEvent, QFileOpenEvent, QFocusEvent, QHelpEvent, QHideEvent, QHoverEvent, QIconDragEvent, QInputEvent, QInputMethodEvent, QMoveEvent, QPaintEvent, QResizeEvent, QShortcutEvent, QShowEvent, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent, and QWindowStateChangeEvent.
Класс QEvent является базовым классом для всех классов сообщений. Объекты сообщений содержат параметры сообщений.
Главный цикл обработки сообщений Qt (QCoreApplication::exec()) получает родные сообщения оконной системы из очереди сообщений, конвертирует их в QEvents, и пересылает конвертированные сообщения в QObject.
Вообще сообщения поступают от основной оконной системы (spontaneous() возвращает true), но также возможна и посылка сообщений вручную с использованием QCoreApplication::sendEvent() и QCoreApplication::postEvent() (spontaneous() возвращает false).
QObject получает сообщения, при их наличии, с помощью вызова функции QObject::event(). Эта функция может быть повторно реализована в подклассах для настройки обработки сообщений и добавления новых типов сообщений; известный пример: QWidget::event(). По умолчанию, сообщения пересылаются обработчикам событий, подобным QObject::timerEvent() и QWidget::mouseMoveEvent(). QObject::installEventFilter() позволяет объекту перехватывать сообщения адресованные другому объекту.
Простейший QEvent содержит только параметр с типом сообщения и флаг "accept". Флаг "accept" устанавливается с помощью accept() и очищается с помощью ignore(). По умолчанию он установлен, но не стоит на это полагаться, поскольку подклассы могут захотеть сбрасывать его в конструкторе.
Подклассы QEvent содержат дополнительные параметры, которые описывают специфические сообщения.
См. также QObject::event(), QObject::installEventFilter(), QWidget::event(), QCoreApplication::sendEvent(), QCoreApplication::postEvent() и QCoreApplication::processEvents().
Данный тип перечисления описывает действительные типы сообщений Qt. Типы сообщений и соответствующие каждому из них специализированные классы следующие:
Константа | Значение | Описание |
---|---|---|
QEvent::None | 0 | Нет сообщения. |
QEvent::AccessibilityDescription | 130 | Используется для запроса текстов описания доступности (QAccessibleEvent). |
QEvent::AccessibilityHelp | 119 | Используется для запроса текста подсказки (QAccessibleEvent). |
QEvent::AccessibilityPrepare | 86 | Требуется информация о доступности. |
QEvent::ActionAdded | 114 | Было добавлено новое действие (QActionEvent). |
QEvent::ActionChanged | 113 | Действие было изменено (QActionEvent). |
QEvent::ActionRemoved | 115 | Действие было удалено (QActionEvent). |
QEvent::ActivationChange | 99 | Изменилось состояние активности окна виджета верхнего уровня. |
QEvent::ApplicationActivated | 121 | Приложение было сделано доступным пользователю. |
QEvent::ApplicationDeactivated | 122 | Приложение было приостановлено и сделано недоступным пользователю. |
QEvent::ApplicationFontChange | 36 | Шрифт приложения по умолчанию был изменен. |
QEvent::ApplicationLayoutDirectionChange | 37 | Было изменено направления компоновки приложения по умолчанию. |
QEvent::ApplicationPaletteChange | 38 | Была изменена палитра приложения по умолчанию. |
QEvent::ApplicationWindowIconChange | 35 | Изменена пиктограмма приложения. |
QEvent::ChildAdded | 68 | Объект приобретает дочернего объекта (QChildEvent). |
QEvent::ChildPolished | 69 | Настраивается дочерний объект виджета (QChildEvent). |
QEvent::ChildRemoved | 71 | Объект теряет дочернего объекта (QChildEvent). |
QEvent::Clipboard | 40 | Содержимое буфера обмена было изменено (QClipboardEvent). |
QEvent::Close | 19 | Виджет был закрыт (QCloseEvent). |
QEvent::ContextMenu | 82 | Всплывающее контестное меню (QContextMenuEvent). |
QEvent::DeferredDelete | 52 | Объект будет удален после очистки. |
QEvent::DragEnter | 60 | Указатель мыши входит в область виджета в процессе операции drag and drop (QDragEnterEvent). |
QEvent::DragLeave | 62 | Указатель мыши покидает область виджета в процессе операции drag and drop (QDragLeaveEvent). |
QEvent::DragMove | 61 | Происходит операция drag and drop (QDragMoveEvent). |
QEvent::Drop | 63 | Операция drag and drop завершена (QDropEvent). |
QEvent::EnabledChange | 98 | Состояние доступности виджета было изменено. |
QEvent::Enter | 10 | Указатель мыши входит в область виджета. |
QEvent::EnterWhatsThisMode | 124 | Посылается виджетам верхнего уровня, когда приложение входит в режим "What's This?". |
QEvent::FileOpen | 116 | Запрос на открытие файла (QFileOpenEvent). |
QEvent::FocusIn | 8 | Виджет получил фокус ввода клавиатуры (QFocusEvent). |
QEvent::FocusOut | 9 | Виджет потерял фокус ввода клавиатуры (QFocusEvent). |
QEvent::FontChange | 97 | Шрифт виджета был изменен. |
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::KeyPress | 6 | Нажатие клавиши клавиатуры (QKeyEvent). |
QEvent::KeyRelease | 7 | Отпускание клавиши клавиатуры (QKeyEvent). |
QEvent::LanguageChange | 89 | Изменяется перевод приложения. |
QEvent::LayoutDirectionChange | 90 | Изменяется направление компоновки. |
QEvent::LayoutRequest | 76 | Компоновка виджета должна быть переделана. |
QEvent::Leave | 11 | Указатель мыши покидает область виджета. |
QEvent::LeaveWhatsThisMode | 125 | Посылается виджетам верхнего уровня, когда приложение выходит из режима "What's This?". |
QEvent::LocaleChange | 88 | Изменяется локализация системы. |
QEvent::MenubarUpdated | 153 | Панель меню окна была обновлена. |
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::Paint | 12 | Необходимо обновление экрана (QPaintEvent). |
QEvent::PaletteChange | 39 | Изменяется палитра виджета. |
QEvent::ParentAboutToChange | 131 | Родитель виджета собирается измениться. |
QEvent::ParentChange | 21 | Родитель виджета изменился. |
QEvent::Polish | 75 | Виджет настраивается. |
QEvent::PolishRequest | 74 | Виджет настроен. |
QEvent::QueryWhatsThis | 123 | Виджет должен принять данное сообщение, если от имеет подсказку "What's This?". |
QEvent::Resize | 14 | Размер виджета изменяется (QResizeEvent). |
QEvent::Shortcut | 117 | В дочернем виджете нажаты клавиши, соответствующие горячему сочетанию клавиш (QShortcutEvent). |
QEvent::ShortcutOverride | 51 | В дочернем виджете нажаты клавиши, не соответствующие горячему сочетанию клавиш (QKeyEvent). |
QEvent::Show | 17 | Виджет был отображен на экране (QShowEvent). |
QEvent::ShowToParent | 26 | Дочерний виджет был отображен. |
QEvent::SockAct | 50 | Сокет активизирован, используется для работы QSocketNotifier. |
QEvent::StatusTip | 112 | Требуется описание состояния (QStatusTipEvent). |
QEvent::StyleChange | 100 | Стиль виджета был изменен. |
QEvent::TabletMove | 87 | Перемещение на планшете (QTabletEvent). |
QEvent::TabletPress | 92 | Нажатие на планшете (QTabletEvent). |
QEvent::TabletRelease | 93 | Отпускание на планшете (QTabletEvent). |
QEvent::Timer | 1 | Регулярное событие таймера (QTimerEvent). |
QEvent::ToolBarChange | 120 | Кнопка панели инстументов нажата (в Mac OS X). |
QEvent::ToolTip | 110 | Запрос описания инструмента (QHelpEvent). |
QEvent::UpdateLater | 78 | Виджет должен быть перерисован позже. |
QEvent::UpdateRequest | 77 | Виджет был перерисован. |
QEvent::WhatsThis | 111 | Виджет должен отобразить подсказку "What's This?" (QHelpEvent). |
QEvent::WhatsThisClicked | 118 | Произведен щелчок мышью по ссылке в подсказке "What's This?" виджета. |
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::ZOrderChange | 126 | z-индекс виджета был изменен. Данное сообщение никогда не посылается окнам верхнего уровня. |
Пользовательские типы сообщений могут принимать значения между User и MaxUser:
Константа | Значение | Описание |
---|---|---|
QEvent::User | 1000 | Определенный пользователем тип сообщений. |
QEvent::MaxUser | 65535 | Последний ID определенных пользователем типов сообщений. |
Флаг принятия объекта сообщения.
Установка флага принятия означает, что получатель хочет принять данное сообщение. Нежелательное сообщение может быть передано родительскому виджету. По умолчанию isAccepted() установлено в true, но не стоит полагаться на это, так как подклассы могут захотеть сбросить этот флаг в конструкторе.
Для удобства, флаг принятия может быть также установлен с помощью accept(), и очищен с помощью ignore().
Функции доступа:
Создает объект сообщения с типом type.
Разрушает сообщение. Если оно было послано, то оно будет удалено из списка сообщений, которые должны быть посланы.
Устанавливает флаг принятия объекта сообщения, эквивалентно setAccepted(true).
Установка флага принятия указывает на то, что получатель хочет получить данное сообщение. Нежелательное сообщение может быть передано родительскому виджету.
См. также ignore().
Сбрасывает флаг принятия объекта сообщения, эквивалентно calling setAccepted(false).
Сброс флага принятия указывает, что получатель не желает получить данное сообщение. Нежелательное сообщение может быть передано родительскому виджету.
См. также accept().
Возвращает true если сообщение пришло извне приложения (системное сообщение); в противном случае возвращает false.
Для сообщений о рисовании значение данной функции не определено.
Возвращает тип сообщения.
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |