📄 qevent.h
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtGui 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.******************************************************************************/#ifndef QEVENT_H#define QEVENT_H#include <QtGui/qwindowdefs.h>#include <QtCore/qobject.h>#include <QtGui/qregion.h>#include <QtCore/qnamespace.h>#include <QtCore/qstring.h>#include <QtGui/qkeysequence.h>#include <QtCore/qcoreevent.h>#include <QtGui/qmime.h>#include <QtGui/qdrag.h>#include <QtCore/qvariant.h>QT_BEGIN_HEADERQT_MODULE(Gui)class QAction;class Q_GUI_EXPORT QInputEvent : public QEvent{public: QInputEvent(Type type, Qt::KeyboardModifiers modifiers = Qt::NoModifier); ~QInputEvent(); inline Qt::KeyboardModifiers modifiers() const { return modState; }protected: Qt::KeyboardModifiers modState;};class Q_GUI_EXPORT QMouseEvent : public QInputEvent{public: QMouseEvent(Type type, const QPoint &pos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); QMouseEvent(Type type, const QPoint &pos, const QPoint &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); ~QMouseEvent(); inline const QPoint &pos() const { return p; } inline const QPoint &globalPos() const { return g; } inline int x() const { return p.x(); } inline int y() const { return p.y(); } inline int globalX() const { return g.x(); } inline int globalY() const { return g.y(); } inline Qt::MouseButton button() const { return b; } inline Qt::MouseButtons buttons() const { return mouseState; }#ifdef QT3_SUPPORT QT3_SUPPORT_CONSTRUCTOR QMouseEvent(Type type, const QPoint &pos, Qt::ButtonState button, int state); QT3_SUPPORT_CONSTRUCTOR QMouseEvent(Type type, const QPoint &pos, const QPoint &globalPos, Qt::ButtonState button, int state); inline QT3_SUPPORT Qt::ButtonState state() const { return Qt::ButtonState((mouseState^b)|int(modifiers())); } inline QT3_SUPPORT Qt::ButtonState stateAfter() const { return Qt::ButtonState(int(mouseState)|int(modifiers())); }#endifprotected: QPoint p, g; Qt::MouseButton b; Qt::MouseButtons mouseState;};class Q_GUI_EXPORT QHoverEvent : public QEvent{public: QHoverEvent(Type type, const QPoint &pos, const QPoint &oldPos); ~QHoverEvent(); inline const QPoint &pos() const { return p; } inline const QPoint &oldPos() const { return op; }protected: QPoint p, op;};#ifndef QT_NO_WHEELEVENTclass Q_GUI_EXPORT QWheelEvent : public QInputEvent{public: QWheelEvent(const QPoint &pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical); QWheelEvent(const QPoint &pos, const QPoint& globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical); ~QWheelEvent(); inline int delta() const { return d; } inline const QPoint &pos() const { return p; } inline const QPoint &globalPos() const { return g; } inline int x() const { return p.x(); } inline int y() const { return p.y(); } inline int globalX() const { return g.x(); } inline int globalY() const { return g.y(); } inline Qt::MouseButtons buttons() const { return mouseState; } Qt::Orientation orientation() const { return o; }#ifdef QT3_SUPPORT QT3_SUPPORT_CONSTRUCTOR QWheelEvent(const QPoint &pos, int delta, int state, Qt::Orientation orient = Qt::Vertical); QT3_SUPPORT_CONSTRUCTOR QWheelEvent(const QPoint &pos, const QPoint& globalPos, int delta, int state, Qt::Orientation orient = Qt::Vertical); inline QT3_SUPPORT Qt::ButtonState state() const { return static_cast<Qt::ButtonState>(int(buttons())|int(modifiers())); }#endifprotected: QPoint p; QPoint g; int d; Qt::MouseButtons mouseState; Qt::Orientation o;};#endifclass Q_GUI_EXPORT QTabletEvent : public QInputEvent{public: enum TabletDevice { NoDevice, Puck, Stylus, Airbrush, FourDMouse, XFreeEraser /*internal*/, RotationStylus }; enum PointerType { UnknownPointer, Pen, Cursor, Eraser }; QTabletEvent(Type t, const QPoint &pos, const QPoint &globalPos, const QPointF &hiResGlobalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID); ~QTabletEvent(); inline const QPoint &pos() const { return mPos; } inline const QPoint &globalPos() const { return mGPos; } inline const QPointF &hiResGlobalPos() const { return mHiResGlobalPos; } inline int x() const { return mPos.x(); } inline int y() const { return mPos.y(); } inline int globalX() const { return mGPos.x(); } inline int globalY() const { return mGPos.y(); } inline qreal hiResGlobalX() const { return mHiResGlobalPos.x(); } inline qreal hiResGlobalY() const { return mHiResGlobalPos.y(); } inline TabletDevice device() const { return TabletDevice(mDev); } inline PointerType pointerType() const { return PointerType(mPointerType); } inline qint64 uniqueId() const { return mUnique; } inline qreal pressure() const { return mPress; } inline int z() const { return mZ; } inline qreal tangentialPressure() const { return mTangential; } inline qreal rotation() const { return mRot; } inline int xTilt() const { return mXT; } inline int yTilt() const { return mYT; }protected: QPoint mPos, mGPos; QPointF mHiResGlobalPos; int mDev, mPointerType, mXT, mYT, mZ; qreal mPress, mTangential, mRot; qint64 mUnique; // I don't know what the future holds for tablets but there could be some // new devices coming along, and there seem to be "holes" in the // OS-specific events for this. void *mExtra;};class Q_GUI_EXPORT QKeyEvent : public QInputEvent{public: QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(), bool autorep = false, ushort count = 1); ~QKeyEvent(); int key() const { return k; } Qt::KeyboardModifiers modifiers() const; inline QString text() const { return txt; } inline bool isAutoRepeat() const { return autor; } inline int count() const { return int(c); }#ifdef QT3_SUPPORT inline QT3_SUPPORT_CONSTRUCTOR QKeyEvent(Type type, int key, int /*ascii*/, int modifiers, const QString& text = QString(), bool autorep = false, ushort count = 1) : QInputEvent(type, (Qt::KeyboardModifiers)(modifiers & (int)Qt::KeyButtonMask)), txt(text), k(key), c(count), autor(autorep) { if (key >= Qt::Key_Back && key <= Qt::Key_MediaLast) ignore(); } inline QT3_SUPPORT int ascii() const { return (txt.length() ? txt.unicode()->toLatin1() : 0); } inline QT3_SUPPORT Qt::ButtonState state() const { return Qt::ButtonState(QInputEvent::modifiers()); } inline QT3_SUPPORT Qt::ButtonState stateAfter() const { return Qt::ButtonState(modifiers()); }#endifprotected: QString txt; int k; ushort c; uint autor:1;};class Q_GUI_EXPORT QFocusEvent : public QEvent{public: QFocusEvent(Type type, Qt::FocusReason reason=Qt::OtherFocusReason); ~QFocusEvent(); inline bool gotFocus() const { return type() == FocusIn; } inline bool lostFocus() const { return type() == FocusOut; }#ifdef QT3_SUPPORT enum Reason { Mouse=Qt::MouseFocusReason, Tab=Qt::TabFocusReason, Backtab=Qt::BacktabFocusReason, MenuBar=Qt::MenuBarFocusReason, ActiveWindow=Qt::ActiveWindowFocusReason, Other=Qt::OtherFocusReason, Popup=Qt::PopupFocusReason, Shortcut=Qt::ShortcutFocusReason };#endif Qt::FocusReason reason();private: Qt::FocusReason m_reason;};class Q_GUI_EXPORT QPaintEvent : public QEvent{public: QPaintEvent(const QRegion& paintRegion); QPaintEvent(const QRect &paintRect); ~QPaintEvent(); inline const QRect &rect() const { return m_rect; } inline const QRegion ®ion() const { return m_region; }#ifdef QT3_SUPPORT QT_COMPAT_CONSTRUCTOR QPaintEvent(const QRegion &paintRegion, const QRect &paintRect); inline QT3_SUPPORT bool erased() const { return m_erased; } inline QT3_SUPPORT void setErased(bool b) { m_erased = b; }#endifprotected: friend class QApplication; friend class QCoreApplication; QRect m_rect; QRegion m_region; bool m_erased;};class QUpdateLaterEvent : public QEvent{public: QUpdateLaterEvent(const QRegion& paintRegion); ~QUpdateLaterEvent(); inline const QRegion ®ion() const { return m_region; }protected: QRegion m_region;};class Q_GUI_EXPORT QMoveEvent : public QEvent{public: QMoveEvent(const QPoint &pos, const QPoint &oldPos); ~QMoveEvent(); inline const QPoint &pos() const { return p; } inline const QPoint &oldPos() const { return oldp;}protected: QPoint p, oldp; friend class QApplication; friend class QCoreApplication;};class Q_GUI_EXPORT QResizeEvent : public QEvent{public: QResizeEvent(const QSize &size, const QSize &oldSize); ~QResizeEvent(); inline const QSize &size() const { return s; } inline const QSize &oldSize()const { return olds;}protected: QSize s, olds; friend class QApplication; friend class QCoreApplication;};class Q_GUI_EXPORT QCloseEvent : public QEvent{public: QCloseEvent(); ~QCloseEvent();};class Q_GUI_EXPORT QIconDragEvent : public QEvent{public: QIconDragEvent(); ~QIconDragEvent();};class Q_GUI_EXPORT QShowEvent : public QEvent{public:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -