📄 qcoreevent.cpp
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "qcoreevent.h"#include "qcoreapplication.h"#include "qcoreapplication_p.h"/*! \class QEvent \brief The QEvent class is the base class of all event classes. Event objects contain event parameters. \ingroup events \ingroup environment Qt's main event loop (QCoreApplication::exec()) fetches native window system events from the event queue, translates them into QEvents, and sends the translated events to \l{QObject}s. In general, events come from the underlying window system (spontaneous() returns true), but it is also possible to manually send events using QCoreApplication::sendEvent() and QCoreApplication::postEvent() (spontaneous() returns false). QObjects receive events by having their QObject::event() function called. The function can be reimplemented in subclasses to customize event handling and add additional event types; QWidget::event() is a notable example. By default, events are dispatched to event handlers like QObject::timerEvent() and QWidget::mouseMoveEvent(). QObject::installEventFilter() allows an object to intercept events destined for another object. The basic QEvent contains only an event type parameter and an "accept" flag. The accept flag set with accept(), and cleared with ignore(). It is set by default, but don't rely on this as subclasses may choose to clear it in their constructor. Subclasses of QEvent contain additional parameters that describe the particular event. \sa QObject::event(), QObject::installEventFilter(), QWidget::event(), QCoreApplication::sendEvent(), QCoreApplication::postEvent(), QCoreApplication::processEvents()*//*! \enum QEvent::Type This enum type defines the valid event types in Qt. The event types and the specialized classes for each type are as follows: \value None Not an event. \value AccessibilityDescription Used to query accessibility description texts (QAccessibleEvent). \value AccessibilityHelp Used to query accessibility help texts (QAccessibleEvent). \value AccessibilityPrepare Accessibility information is requested. \value ActionAdded A new action has been added (QActionEvent). \value ActionChanged An action has been changed (QActionEvent). \value ActionRemoved An action has been removed (QActionEvent). \value ActivationChange A widget's top-level window activation state has changed. \value ApplicationActivated The application has been made available to the user. \value ApplicationDeactivated The application has been suspended, and is unavailable to the user. \value ApplicationFontChange The default application font has changed. \value ApplicationLayoutDirectionChange The default application layout direction has changed. \value ApplicationPaletteChange The default application palette has changed. \value ApplicationWindowIconChange The application's icon has changed. \value ChildAdded An object gets a child (QChildEvent). \value ChildPolished A widget child gets polished (QChildEvent). \value ChildRemoved An object loses a child (QChildEvent). \value Clipboard The clipboard contents have changed (QClipboardEvent). \value Close Widget was closed (QCloseEvent). \value ContextMenu Context popup menu (QContextMenuEvent). \value DeferredDelete The object will be deleted after it has cleaned up. \value DragEnter The cursor enters a widget during a drag and drop action (QDragEnterEvent). \value DragLeave The cursor leaves a widget during a drag and drop action (QDragLeaveEvent). \value DragMove A drag and drop action is in progress (QDragMoveEvent). \value Drop A drag and drop action is completed (QDropEvent). \value EnabledChange Widget's enabled state has changed. \value Enter Mouse enters widget's boundaries. \value EnterWhatsThisMode Send to toplevel widgets when the application enters "What's This?" mode. \value FileOpen File open request (QFileOpenEvent). \value FocusIn Widget gains keyboard focus (QFocusEvent). \value FocusOut Widget loses keyboard focus (QFocusEvent). \value FontChange Widget's font has changed. \value Hide Widget was hidden (QHideEvent). \value HideToParent A child widget has been hidden. \value HoverEnter The mouse cursor enters a hover widget (QHoverEvent). \value HoverLeave The mouse cursor leaves a hover widget (QHoverEvent). \value HoverMove The mouse cursor moves inside a hover widget (QHoverEvent). \value IconDrag The main icon of a window has been dragged away (QIconDragEvent). \value IconTextChange Widget's icon text has been changed. \value InputMethod An input method is being used (QInputMethodEvent). \value KeyPress Key press (QKeyEvent). \value KeyRelease Key release (QKeyEvent). \value LanguageChange The application translation changed. \value LayoutDirectionChange The direction of layouts changed. \value LayoutRequest Widget layout needs to be redone. \value Leave Mouse leaves widget's boundaries. \value LeaveWhatsThisMode Send to toplevel widgets when the application leaves "What's This?" mode. \value LocaleChange The system locale has changed. \value MenubarUpdated The window's menu bar has been updated. \value MetaCall An asynchronous method invocation via QMetaObject::invokeMethod(). \value ModifiedChange Widgets modification state has been changed. \value MouseButtonDblClick Mouse press again (QMouseEvent). \value MouseButtonPress Mouse press (QMouseEvent). \value MouseButtonRelease Mouse release (QMouseEvent). \value MouseMove Mouse move (QMouseEvent). \value MouseTrackingChange The mouse tracking state has changed. \value Move Widget's position changed (QMoveEvent). \value Paint Screen update necessary (QPaintEvent). \value PaletteChange Palette of the widget changed. \value ParentAboutToChange The widget parent is about to change. \value ParentChange The widget parent has changed. \value Polish The widget is polished. \value PolishRequest The widget should be polished. \value QueryWhatsThis The widget should accept the event if it has "What's This?" help. \value Resize Widget's size changed (QResizeEvent). \value Shortcut Key press in child for shortcut key handling (QShortcutEvent). \value ShortcutOverride Key press in child, for overriding shortcut key handling (QKeyEvent). \value Show Widget was shown on screen (QShowEvent). \value ShowToParent A child widget has been shown. \value SockAct Socket activated, used to implement QSocketNotifier. \value StatusTip A status tip is requested (QStatusTipEvent). \value StyleChange Widget's style has been changed. \value TabletMove Wacom tablet move (QTabletEvent). \value TabletPress Wacom tablet press (QTabletEvent). \value TabletRelease Wacom tablet release (QTabletEvent). \value Timer Regular timer events (QTimerEvent). \value ToolBarChange The toolbar button is toggled on Mac OS X. \value ToolTip A tooltip was requested (QHelpEvent). \value UpdateLater The widget should be queued to be repainted at a later time. \value UpdateRequest The widget should be repainted. \value WhatsThis The widget should reveal "What's This?" help (QHelpEvent). \value WhatsThisClicked A link in a widget's "What's This?" help was clicked. \value Wheel Mouse wheel rolled (QWheelEvent). \value WinEventAct A Windows-specific activation event has occurred. \value WindowActivate Window was activated. \value WindowBlocked The window is blocked by a modal dialog. \value WindowDeactivate Window was deactivated. \value WindowIconChange The window's icon has changed. \value WindowStateChange The \l{QWidget::windowState()}{window's state} (minimized, maximized or full-screen) has changed (QWindowStateChangeEvent). \value WindowTitleChange The window title has changed. \value WindowUnblocked The window is unblocked after a modal dialog exited. \value ZOrderChange The widget's z-order has changed. This event is never sent to top level windows. User events should have values between \c User and \c{MaxUser}: \value User User-defined event. \value MaxUser Last user event ID. \omitvalue Accel \omitvalue AccelAvailable \omitvalue AccelOverride \omitvalue AcceptDropsChange \omitvalue ActivateControl \omitvalue CaptionChange \omitvalue ChildInserted \omitvalue Create \omitvalue DeactivateControl \omitvalue Destroy \omitvalue DragResponse \omitvalue EmbeddingControl \omitvalue HelpRequest \omitvalue IconChange \omitvalue LayoutHint \omitvalue OkRequest \omitvalue Quit \omitvalue Reparent \omitvalue ShowWindowRequest \omitvalue Speech \omitvalue Style \omitvalue ThreadChange \omitvalue ZeroTimerEvent*//*! Contructs an event object of type \a type.*/QEvent::QEvent(Type type) : d(0), t(type), posted(false), spont(false), m_accept(true){}/*! Destroys the event. If it was \link QCoreApplication::postEvent() posted \endlink, it will be removed from the list of events to be posted.*/QEvent::~QEvent(){ if (posted && QCoreApplication::instance()) QCoreApplicationPrivate::removePostedEvent(this);}/*! \property QEvent::accepted the accept flag of the event object Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget. By default, isAccepted() is set to true, but don't rely on this as subclasses may choose to clear it in their constructor.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -