QtBase  v6.3.1
qevent.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2020 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #ifndef QEVENT_H
41 #define QEVENT_H
42 
43 #include <QtGui/qtguiglobal.h>
44 
45 #include <QtCore/qcoreevent.h>
46 #include <QtCore/qiodevice.h>
47 #include <QtCore/qlist.h>
48 #include <QtCore/qnamespace.h>
49 #include <QtCore/qpointer.h>
50 #include <QtCore/qstring.h>
51 #include <QtCore/qurl.h>
52 #include <QtCore/qvariant.h>
53 #include <QtGui/qeventpoint.h>
54 #include <QtGui/qpointingdevice.h>
55 #include <QtGui/qregion.h>
56 #include <QtGui/qwindowdefs.h>
57 
58 #if QT_CONFIG(shortcut)
59 # include <QtGui/qkeysequence.h>
60 #endif
61 
63 
64 class QFile;
65 class QAction;
66 class QMouseEvent;
67 class QPointerEvent;
68 class QScreen;
69 class QTabletEvent;
70 class QTouchEvent;
71 #if QT_CONFIG(gestures)
72 class QGesture;
73 #endif
74 
75 class Q_GUI_EXPORT QInputEvent : public QEvent
76 {
78 public:
79  explicit QInputEvent(Type type, const QInputDevice *m_dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
80  ~QInputEvent();
81  QInputEvent *clone() const override { return new QInputEvent(*this); }
82 
83  const QInputDevice *device() const { return m_dev; }
85  inline Qt::KeyboardModifiers modifiers() const { return m_modState; }
86  inline void setModifiers(Qt::KeyboardModifiers modifiers) { m_modState = modifiers; }
87  inline quint64 timestamp() const { return m_timeStamp; }
88  virtual void setTimestamp(quint64 timestamp) { m_timeStamp = timestamp; }
89 
90 protected:
91  QInputEvent(Type type, PointerEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
92  QInputEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
93 
94  const QInputDevice *m_dev = nullptr;
95  quint64 m_timeStamp = 0;
96  Qt::KeyboardModifiers m_modState = Qt::NoModifier;
97  // fill up to the closest 8-byte aligned size: 48
98  quint32 m_reserved = 0;
99 };
100 
101 class Q_GUI_EXPORT QPointerEvent : public QInputEvent
102 {
104 public:
105  explicit QPointerEvent(Type type, const QPointingDevice *dev,
106  Qt::KeyboardModifiers modifiers = Qt::NoModifier, const QList<QEventPoint> &points = {});
107  ~QPointerEvent();
108 
109  QPointerEvent *clone() const override { return new QPointerEvent(*this); }
110 
111  const QPointingDevice *pointingDevice() const;
113  return pointingDevice() ? pointingDevice()->pointerType() : QPointingDevice::PointerType::Unknown;
114  }
115  void setTimestamp(quint64 timestamp) override;
116  qsizetype pointCount() const { return m_points.count(); }
117  QEventPoint &point(qsizetype i);
118  const QList<QEventPoint> &points() const { return m_points; }
119  QEventPoint *pointById(int id);
120  bool allPointsGrabbed() const;
121  virtual bool isBeginEvent() const { return false; }
122  virtual bool isUpdateEvent() const { return false; }
123  virtual bool isEndEvent() const { return false; }
124  bool allPointsAccepted() const;
125  virtual void setAccepted(bool accepted) override;
126  QObject *exclusiveGrabber(const QEventPoint &point) const;
127  void setExclusiveGrabber(const QEventPoint &point, QObject *exclusiveGrabber);
128  QList<QPointer <QObject>> passiveGrabbers(const QEventPoint &point) const;
129  void clearPassiveGrabbers(const QEventPoint &point);
130  bool addPassiveGrabber(const QEventPoint &point, QObject *grabber);
131  bool removePassiveGrabber(const QEventPoint &point, QObject *grabber);
132 
133 protected:
134  QPointerEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
135 
137 };
138 
139 class Q_GUI_EXPORT QSinglePointEvent : public QPointerEvent
140 {
142  Q_PROPERTY(QObject *exclusivePointGrabber READ exclusivePointGrabber
143  WRITE setExclusivePointGrabber)
144 
146 public:
147  inline Qt::MouseButton button() const { return m_button; }
148  inline Qt::MouseButtons buttons() const { return m_mouseState; }
149 
150  inline QPointF position() const
151  { Q_ASSERT(!m_points.isEmpty()); return m_points.first().position(); }
152  inline QPointF scenePosition() const
153  { Q_ASSERT(!m_points.isEmpty()); return m_points.first().scenePosition(); }
154  inline QPointF globalPosition() const
155  { Q_ASSERT(!m_points.isEmpty()); return m_points.first().globalPosition(); }
156 
157  bool isBeginEvent() const override;
158  bool isUpdateEvent() const override;
159  bool isEndEvent() const override;
160 
163  void setExclusivePointGrabber(QObject *exclusiveGrabber)
164  { QPointerEvent::setExclusiveGrabber(points().first(), exclusiveGrabber); }
165 
166  QSinglePointEvent *clone() const override { return new QSinglePointEvent(*this); }
167 
168 protected:
170  Qt::MouseButton button, Qt::MouseButtons buttons,
171  Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source);
172  QSinglePointEvent(Type type, const QPointingDevice *dev, const QPointF &localPos,
173  const QPointF &scenePos, const QPointF &globalPos,
174  Qt::MouseButton button, Qt::MouseButtons buttons,
175  Qt::KeyboardModifiers modifiers,
177 
179  Qt::MouseButtons m_mouseState = Qt::NoButton;
181  /*
182  Fill up to the next 8-byte aligned size: 88
183  We have 32bits left, use some for QSinglePointEvent subclasses so that
184  we don't end up with gaps.
185  */
186  // split this in two quint16; with a quint32, MSVC would 32-bit align it
189  // for QMouseEvent
191  // for QWheelEvent
194 };
195 
196 class Q_GUI_EXPORT QEnterEvent : public QSinglePointEvent
197 {
199 public:
200  QEnterEvent(const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
202  ~QEnterEvent();
203 
204  QEnterEvent *clone() const override { return new QEnterEvent(*this); }
205 
206 #if QT_DEPRECATED_SINCE(6, 0)
207 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
208  QT_DEPRECATED_VERSION_X_6_0("Use position()")
209  inline QPoint pos() const { return position().toPoint(); }
210  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
211  inline QPoint globalPos() const { return globalPosition().toPoint(); }
212  QT_DEPRECATED_VERSION_X_6_0("Use position()")
213  inline int x() const { return qRound(position().x()); }
214  QT_DEPRECATED_VERSION_X_6_0("Use position()")
215  inline int y() const { return qRound(position().y()); }
216  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
217  inline int globalX() const { return qRound(globalPosition().x()); }
218  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
219  inline int globalY() const { return qRound(globalPosition().y()); }
220 #endif
221  QT_DEPRECATED_VERSION_X_6_0("Use position()")
222  QPointF localPos() const { return position(); }
223  QT_DEPRECATED_VERSION_X_6_0("Use scenePosition()")
224  QPointF windowPos() const { return scenePosition(); }
225  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
226  QPointF screenPos() const { return globalPosition(); }
227 #endif // QT_DEPRECATED_SINCE(6, 0)
228 };
229 
230 class Q_GUI_EXPORT QMouseEvent : public QSinglePointEvent
231 {
233 public:
235  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
237  QMouseEvent(Type type, const QPointF &localPos, const QPointF &globalPos,
238  Qt::MouseButton button, Qt::MouseButtons buttons,
239  Qt::KeyboardModifiers modifiers,
241  QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
242  Qt::MouseButton button, Qt::MouseButtons buttons,
243  Qt::KeyboardModifiers modifiers,
245  QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
246  Qt::MouseButton button, Qt::MouseButtons buttons,
247  Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source,
249  ~QMouseEvent();
250 
251  QMouseEvent *clone() const override { return new QMouseEvent(*this); }
252 
253 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
254  inline QPoint pos() const { return position().toPoint(); }
255 #endif
256 #if QT_DEPRECATED_SINCE(6, 0)
257 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
258  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
259  inline QPoint globalPos() const { return globalPosition().toPoint(); }
260  QT_DEPRECATED_VERSION_X_6_0("Use position()")
261  inline int x() const { return qRound(position().x()); }
262  QT_DEPRECATED_VERSION_X_6_0("Use position()")
263  inline int y() const { return qRound(position().y()); }
264  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
265  inline int globalX() const { return qRound(globalPosition().x()); }
266  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
267  inline int globalY() const { return qRound(globalPosition().y()); }
268 #endif // QT_NO_INTEGER_EVENT_COORDINATES
269  QT_DEPRECATED_VERSION_X_6_0("Use position()")
270  QPointF localPos() const { return position(); }
271  QT_DEPRECATED_VERSION_X_6_0("Use scenePosition()")
272  QPointF windowPos() const { return scenePosition(); }
273  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
274  QPointF screenPos() const { return globalPosition(); }
276 #endif // QT_DEPRECATED_SINCE(6, 0)
277  Qt::MouseEventFlags flags() const;
278 };
279 
280 class Q_GUI_EXPORT QHoverEvent : public QSinglePointEvent
281 {
283 public:
284  QHoverEvent(Type type, const QPointF &pos, const QPointF &globalPos, const QPointF &oldPos,
285  Qt::KeyboardModifiers modifiers = Qt::NoModifier,
287 #if QT_DEPRECATED_SINCE(6, 3)
288  QT_DEPRECATED_VERSION_X_6_3("Use the other constructor")
289  QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos,
290  Qt::KeyboardModifiers modifiers = Qt::NoModifier,
292 #endif
293  ~QHoverEvent();
294 
295  QHoverEvent *clone() const override { return new QHoverEvent(*this); }
296 
297 #if QT_DEPRECATED_SINCE(6, 0)
298 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
299  QT_DEPRECATED_VERSION_X_6_0("Use position()")
300  inline QPoint pos() const { return position().toPoint(); }
301 #endif
302 
303  QT_DEPRECATED_VERSION_X_6_0("Use position()")
304  inline QPointF posF() const { return position(); }
305 #endif // QT_DEPRECATED_SINCE(6, 0)
306 
307  bool isUpdateEvent() const override { return true; }
308 
309  // TODO deprecate when we figure out an actual replacement (point history?)
310  inline QPoint oldPos() const { return m_oldPos.toPoint(); }
311  inline QPointF oldPosF() const { return m_oldPos; }
312 
313 protected:
314  QPointF m_oldPos; // TODO remove?
315 };
316 
317 #if QT_CONFIG(wheelevent)
318 class Q_GUI_EXPORT QWheelEvent : public QSinglePointEvent
319 {
320  Q_GADGET
321  Q_PROPERTY(const QPointingDevice *device READ pointingDevice)
322  Q_PROPERTY(QPoint pixelDelta READ pixelDelta)
323  Q_PROPERTY(QPoint angleDelta READ angleDelta)
324  Q_PROPERTY(Qt::ScrollPhase phase READ phase)
325  Q_PROPERTY(bool inverted READ inverted)
326 
327  Q_EVENT_DISABLE_COPY(QWheelEvent);
328 public:
329  enum { DefaultDeltasPerStep = 120 };
330 
331  QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta,
332  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase,
335  ~QWheelEvent();
336 
337  QWheelEvent *clone() const override { return new QWheelEvent(*this); }
338 
339  inline QPoint pixelDelta() const { return m_pixelDelta; }
340  inline QPoint angleDelta() const { return m_angleDelta; }
341 
342  inline Qt::ScrollPhase phase() const { return Qt::ScrollPhase(m_phase); }
343  inline bool inverted() const { return m_invertedScrolling; }
344  inline bool isInverted() const { return m_invertedScrolling; }
345  inline bool hasPixelDelta() const { return !m_pixelDelta.isNull(); }
346 
347  bool isBeginEvent() const override;
348  bool isUpdateEvent() const override;
349  bool isEndEvent() const override;
350  Qt::MouseEventSource source() const { return Qt::MouseEventSource(m_source); }
351 
352 protected:
353  QPoint m_pixelDelta;
354  QPoint m_angleDelta;
355 };
356 #endif
357 
358 #if QT_CONFIG(tabletevent)
359 class Q_GUI_EXPORT QTabletEvent : public QSinglePointEvent
360 {
361  Q_EVENT_DISABLE_COPY(QTabletEvent);
362 public:
363  QTabletEvent(Type t, const QPointingDevice *device,
364  const QPointF &pos, const QPointF &globalPos,
365  qreal pressure, float xTilt, float yTilt,
366  float tangentialPressure, qreal rotation, float z,
367  Qt::KeyboardModifiers keyState,
368  Qt::MouseButton button, Qt::MouseButtons buttons);
369  ~QTabletEvent();
370 
371  QTabletEvent *clone() const override { return new QTabletEvent(*this); }
372 
373 #if QT_DEPRECATED_SINCE(6, 0)
374  QT_DEPRECATED_VERSION_X_6_0("Use position()")
375  inline QPoint pos() const { return position().toPoint(); }
376  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
377  inline QPoint globalPos() const { return globalPosition().toPoint(); }
378 
379  QT_DEPRECATED_VERSION_X_6_0("Use position()")
380  inline const QPointF posF() const { return position(); }
381  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
382  inline const QPointF globalPosF() const { return globalPosition(); }
383  QT_DEPRECATED_VERSION_X_6_0("Use position().x()")
384  inline int x() const { return qRound(position().x()); }
385  QT_DEPRECATED_VERSION_X_6_0("Use position().y()")
386  inline int y() const { return qRound(position().y()); }
387  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition().x()")
388  inline int globalX() const { return qRound(globalPosition().x()); }
389  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition().y()")
390  inline int globalY() const { return qRound(globalPosition().y()); }
391  QT_DEPRECATED_VERSION_X_6_0("use globalPosition().x()")
392  inline qreal hiResGlobalX() const { return globalPosition().x(); }
393  QT_DEPRECATED_VERSION_X_6_0("use globalPosition().y()")
394  inline qreal hiResGlobalY() const { return globalPosition().y(); }
395  QT_DEPRECATED_VERSION_X_6_0("use pointingDevice().uniqueId()")
396  inline qint64 uniqueId() const { return pointingDevice() ? pointingDevice()->uniqueId().numericId() : -1; }
397 #endif
398  inline qreal pressure() const { Q_ASSERT(!points().isEmpty()); return points().first().pressure(); }
399  inline qreal rotation() const { Q_ASSERT(!points().isEmpty()); return points().first().rotation(); }
400  inline qreal z() const { return m_z; }
401  inline qreal tangentialPressure() const { return m_tangential; }
402  inline qreal xTilt() const { return m_xTilt; }
403  inline qreal yTilt() const { return m_yTilt; }
404 
405 protected:
406  float m_tangential;
407  float m_xTilt;
408  float m_yTilt;
409  float m_z;
410 };
411 #endif // QT_CONFIG(tabletevent)
412 
413 #if QT_CONFIG(gestures)
414 class Q_GUI_EXPORT QNativeGestureEvent : public QSinglePointEvent
415 {
417 public:
418 #if QT_DEPRECATED_SINCE(6, 2)
419  QT_DEPRECATED_VERSION_X_6_2("Use the other constructor")
421  const QPointF &globalPos, qreal value, quint64 sequenceId, quint64 intArgument);
422 #endif
423  QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *dev, int fingerCount,
424  const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos,
425  qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX);
427 
428  QNativeGestureEvent *clone() const override { return new QNativeGestureEvent(*this); }
429 
430  Qt::NativeGestureType gestureType() const { return m_gestureType; }
431  int fingerCount() const { return m_fingerCount; }
432  qreal value() const { return m_realValue; }
433  QPointF delta() const {
434 #if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
435  return m_delta.toPointF();
436 #else
437  return m_delta;
438 #endif
439  }
440 
441 #if QT_DEPRECATED_SINCE(6, 0)
442 #ifndef QT_NO_INTEGER_EVENT_COORDINATES
443  QT_DEPRECATED_VERSION_X_6_0("Use position().toPoint()")
444  inline const QPoint pos() const { return position().toPoint(); }
445  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition().toPoint()")
446  inline const QPoint globalPos() const { return globalPosition().toPoint(); }
447 #endif
448  QT_DEPRECATED_VERSION_X_6_0("Use position()")
449  QPointF localPos() const { return position(); }
450  QT_DEPRECATED_VERSION_X_6_0("Use scenePosition()")
451  QPointF windowPos() const { return scenePosition(); }
452  QT_DEPRECATED_VERSION_X_6_0("Use globalPosition()")
453  QPointF screenPos() const { return globalPosition(); }
454 #endif
455 
456 protected:
457  quint64 m_sequenceId;
458 #if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
459  QVector2D m_delta;
460 #else
461  QPointF m_delta;
462 #endif
463  qreal m_realValue;
464  Qt::NativeGestureType m_gestureType;
465  quint32 m_fingerCount : 4;
466  quint32 m_reserved : 28;
467 };
468 #endif // QT_CONFIG(gestures)
469 
470 class Q_GUI_EXPORT QKeyEvent : public QInputEvent
471 {
473 public:
474  QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
475  bool autorep = false, quint16 count = 1);
476  QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
477  quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
478  const QString &text = QString(), bool autorep = false, quint16 count = 1,
480  ~QKeyEvent();
481 
482  QKeyEvent *clone() const override { return new QKeyEvent(*this); }
483 
484  int key() const { return m_key; }
485 #if QT_CONFIG(shortcut)
486  bool matches(QKeySequence::StandardKey key) const;
487 #endif
488  Qt::KeyboardModifiers modifiers() const;
490  {
491  return QKeyCombination(modifiers(), Qt::Key(m_key));
492  }
493  inline QString text() const { return m_text; }
494  inline bool isAutoRepeat() const { return m_autoRepeat; }
495  inline int count() const { return int(m_count); }
496 
497  inline quint32 nativeScanCode() const { return m_scanCode; }
498  inline quint32 nativeVirtualKey() const { return m_virtualKey; }
499  inline quint32 nativeModifiers() const { return m_nativeModifiers; }
500 
501 #if QT_CONFIG(shortcut)
502  friend inline bool operator==(QKeyEvent *e, QKeySequence::StandardKey key)
503  { return (e ? e->matches(key) : false); }
504  friend inline bool operator==(QKeySequence::StandardKey key, QKeyEvent *e)
505  { return (e ? e->matches(key) : false); }
506 #endif // QT_CONFIG(shortcut)
507 
508 protected:
510  int m_key;
516 };
517 
518 
519 class Q_GUI_EXPORT QFocusEvent : public QEvent
520 {
522 public:
524  ~QFocusEvent();
525 
526  QFocusEvent *clone() const override { return new QFocusEvent(*this); }
527 
528  inline bool gotFocus() const { return type() == FocusIn; }
529  inline bool lostFocus() const { return type() == FocusOut; }
530 
531  Qt::FocusReason reason() const;
532 
533 private:
534  Qt::FocusReason m_reason;
535 };
536 
537 
538 class Q_GUI_EXPORT QPaintEvent : public QEvent
539 {
541 public:
542  explicit QPaintEvent(const QRegion& paintRegion);
543  explicit QPaintEvent(const QRect &paintRect);
544  ~QPaintEvent();
545 
546  QPaintEvent *clone() const override { return new QPaintEvent(*this); }
547 
548  inline const QRect &rect() const { return m_rect; }
549  inline const QRegion &region() const { return m_region; }
550 
551 protected:
554  bool m_erased;
555 };
556 
557 class Q_GUI_EXPORT QMoveEvent : public QEvent
558 {
560 public:
561  QMoveEvent(const QPoint &pos, const QPoint &oldPos);
562  ~QMoveEvent();
563 
564  QMoveEvent *clone() const override { return new QMoveEvent(*this); }
565 
566  inline const QPoint &pos() const { return m_pos; }
567  inline const QPoint &oldPos() const { return m_oldPos;}
568 protected:
569  QPoint m_pos, m_oldPos;
570  friend class QApplication;
571 };
572 
573 class Q_GUI_EXPORT QExposeEvent : public QEvent
574 {
576 public:
577  explicit QExposeEvent(const QRegion &m_region);
578  ~QExposeEvent();
579 
580  QExposeEvent *clone() const override { return new QExposeEvent(*this); }
581 
582 #if QT_DEPRECATED_SINCE(6, 0)
583  QT_DEPRECATED_VERSION_X_6_0("Handle QPaintEvent instead")
584  inline const QRegion &region() const { return m_region; }
585 #endif
586 
587 protected:
589 };
590 
591 class Q_GUI_EXPORT QPlatformSurfaceEvent : public QEvent
592 {
594 public:
597  SurfaceAboutToBeDestroyed
598  };
599 
600  explicit QPlatformSurfaceEvent(SurfaceEventType surfaceEventType);
602 
603  QPlatformSurfaceEvent *clone() const override { return new QPlatformSurfaceEvent(*this); }
604 
605  inline SurfaceEventType surfaceEventType() const { return m_surfaceEventType; }
606 
607 protected:
609 };
610 
611 class Q_GUI_EXPORT QResizeEvent : public QEvent
612 {
614 public:
615  QResizeEvent(const QSize &size, const QSize &oldSize);
616  ~QResizeEvent();
617 
618  QResizeEvent *clone() const override { return new QResizeEvent(*this); }
619 
620  inline const QSize &size() const { return m_size; }
621  inline const QSize &oldSize()const { return m_oldSize;}
622 protected:
623  QSize m_size, m_oldSize;
624  friend class QApplication;
625 };
626 
627 
628 class Q_GUI_EXPORT QCloseEvent : public QEvent
629 {
631 public:
632  QCloseEvent();
633  ~QCloseEvent();
634 };
635 
636 
637 class Q_GUI_EXPORT QIconDragEvent : public QEvent
638 {
640 public:
641  QIconDragEvent();
642  ~QIconDragEvent();
643 };
644 
645 
646 class Q_GUI_EXPORT QShowEvent : public QEvent
647 {
649 public:
650  QShowEvent();
651  ~QShowEvent();
652 };
653 
654 
655 class Q_GUI_EXPORT QHideEvent : public QEvent
656 {
658 public:
659  QHideEvent();
660  ~QHideEvent();
661 };
662 
663 #ifndef QT_NO_CONTEXTMENU
664 class Q_GUI_EXPORT QContextMenuEvent : public QInputEvent
665 {
667 public:
669 
670  QContextMenuEvent(Reason reason, const QPoint &pos, const QPoint &globalPos,
671  Qt::KeyboardModifiers modifiers = Qt::NoModifier);
672  QContextMenuEvent(Reason reason, const QPoint &pos);
674 
675  QContextMenuEvent *clone() const override { return new QContextMenuEvent(*this); }
676 
677  inline int x() const { return m_pos.x(); }
678  inline int y() const { return m_pos.y(); }
679  inline int globalX() const { return m_globalPos.x(); }
680  inline int globalY() const { return m_globalPos.y(); }
681 
682  inline const QPoint& pos() const { return m_pos; }
683  inline const QPoint& globalPos() const { return m_globalPos; }
684 
685  inline Reason reason() const { return Reason(m_reason); }
686 
687 protected:
691 };
692 #endif // QT_NO_CONTEXTMENU
693 
694 #ifndef QT_NO_INPUTMETHOD
695 class Q_GUI_EXPORT QInputMethodEvent : public QEvent
696 {
698 public:
704  Selection
705  };
706  class Attribute {
707  public:
708  Attribute(AttributeType typ, int s, int l, QVariant val) : type(typ), start(s), length(l), value(std::move(val)) {}
709  Attribute(AttributeType typ, int s, int l) : type(typ), start(s), length(l), value() {}
710 
712  int start;
713  int length;
715  };
717  QInputMethodEvent(const QString &preeditText, const QList<Attribute> &attributes);
719 
720  QInputMethodEvent *clone() const override { return new QInputMethodEvent(*this); }
721 
722  void setCommitString(const QString &commitString, int replaceFrom = 0, int replaceLength = 0);
723  inline const QList<Attribute> &attributes() const { return m_attributes; }
724  inline const QString &preeditString() const { return m_preedit; }
725 
726  inline const QString &commitString() const { return m_commit; }
727  inline int replacementStart() const { return m_replacementStart; }
728  inline int replacementLength() const { return m_replacementLength; }
729 
730  inline friend bool operator==(const QInputMethodEvent::Attribute &lhs,
732  {
733  return lhs.type == rhs.type && lhs.start == rhs.start
734  && lhs.length == rhs.length && lhs.value == rhs.value;
735  }
736 
737  inline friend bool operator!=(const QInputMethodEvent::Attribute &lhs,
739  {
740  return !(lhs == rhs);
741  }
742 
743 private:
744  QString m_preedit;
745  QString m_commit;
746  QList<Attribute> m_attributes;
747  int m_replacementStart;
748  int m_replacementLength;
749 };
751 
752 class Q_GUI_EXPORT QInputMethodQueryEvent : public QEvent
753 {
755 public:
756  explicit QInputMethodQueryEvent(Qt::InputMethodQueries queries);
758 
759  QInputMethodQueryEvent *clone() const override { return new QInputMethodQueryEvent(*this); }
760 
761  Qt::InputMethodQueries queries() const { return m_queries; }
762 
765 private:
766  Qt::InputMethodQueries m_queries;
767  struct QueryPair {
769  QVariant value;
770  };
771  friend QTypeInfo<QueryPair>;
772  QList<QueryPair> m_values;
773 };
774 Q_DECLARE_TYPEINFO(QInputMethodQueryEvent::QueryPair, Q_RELOCATABLE_TYPE);
775 
776 #endif // QT_NO_INPUTMETHOD
777 
778 #if QT_CONFIG(draganddrop)
779 
780 class QMimeData;
781 
782 class Q_GUI_EXPORT QDropEvent : public QEvent
783 {
784  Q_EVENT_DISABLE_COPY(QDropEvent);
785 public:
786  QDropEvent(const QPointF& pos, Qt::DropActions actions, const QMimeData *data,
787  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = Drop);
788  ~QDropEvent();
789 
790  QDropEvent *clone() const override { return new QDropEvent(*this); }
791 
792 #if QT_DEPRECATED_SINCE(6, 0)
793  QT_DEPRECATED_VERSION_X_6_0("Use position().toPoint()")
794  inline QPoint pos() const { return position().toPoint(); }
795  QT_DEPRECATED_VERSION_X_6_0("Use position()")
796  inline QPointF posF() const { return position(); }
797  QT_DEPRECATED_VERSION_X_6_0("Use buttons()")
798  inline Qt::MouseButtons mouseButtons() const { return buttons(); }
799  QT_DEPRECATED_VERSION_X_6_0("Use modifiers()")
800  inline Qt::KeyboardModifiers keyboardModifiers() const { return modifiers(); }
801 #endif // QT_DEPRECATED_SINCE(6, 0)
802 
803  QPointF position() const { return m_pos; }
804  inline Qt::MouseButtons buttons() const { return m_mouseState; }
805  inline Qt::KeyboardModifiers modifiers() const { return m_modState; }
806 
807  inline Qt::DropActions possibleActions() const { return m_actions; }
808  inline Qt::DropAction proposedAction() const { return m_defaultAction; }
809  inline void acceptProposedAction() { m_dropAction = m_defaultAction; accept(); }
810 
811  inline Qt::DropAction dropAction() const { return m_dropAction; }
813 
814  QObject* source() const;
815  inline const QMimeData *mimeData() const { return m_data; }
816 
817 protected:
818  friend class QApplication;
819  QPointF m_pos;
820  Qt::MouseButtons m_mouseState;
821  Qt::KeyboardModifiers m_modState;
822  Qt::DropActions m_actions;
823  Qt::DropAction m_dropAction;
824  Qt::DropAction m_defaultAction;
825  const QMimeData *m_data;
826 };
827 
828 
829 class Q_GUI_EXPORT QDragMoveEvent : public QDropEvent
830 {
831  Q_EVENT_DISABLE_COPY(QDragMoveEvent);
832 public:
833  QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
834  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = DragMove);
835  ~QDragMoveEvent();
836 
837  QDragMoveEvent *clone() const override { return new QDragMoveEvent(*this); }
838 
839  inline QRect answerRect() const { return m_rect; }
840 
841  inline void accept() { QDropEvent::accept(); }
842  inline void ignore() { QDropEvent::ignore(); }
843 
844  inline void accept(const QRect & r) { accept(); m_rect = r; }
845  inline void ignore(const QRect & r) { ignore(); m_rect = r; }
846 
847 protected:
848  QRect m_rect;
849 };
850 
851 
852 class Q_GUI_EXPORT QDragEnterEvent : public QDragMoveEvent
853 {
854  Q_EVENT_DISABLE_COPY(QDragEnterEvent);
855 public:
856  QDragEnterEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
857  Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
858  ~QDragEnterEvent();
859 };
860 
861 
862 class Q_GUI_EXPORT QDragLeaveEvent : public QEvent
863 {
864  Q_EVENT_DISABLE_COPY(QDragLeaveEvent);
865 public:
866  QDragLeaveEvent();
867  ~QDragLeaveEvent();
868 };
869 #endif // QT_CONFIG(draganddrop)
870 
871 
872 class Q_GUI_EXPORT QHelpEvent : public QEvent
873 {
875 public:
876  QHelpEvent(Type type, const QPoint &pos, const QPoint &globalPos);
877  ~QHelpEvent();
878 
879  QHelpEvent *clone() const override { return new QHelpEvent(*this); }
880 
881  inline int x() const { return m_pos.x(); }
882  inline int y() const { return m_pos.y(); }
883  inline int globalX() const { return m_globalPos.x(); }
884  inline int globalY() const { return m_globalPos.y(); }
885 
886  inline const QPoint& pos() const { return m_pos; }
887  inline const QPoint& globalPos() const { return m_globalPos; }
888 
889 private:
890  QPoint m_pos;
891  QPoint m_globalPos;
892 };
893 
894 #ifndef QT_NO_STATUSTIP
895 class Q_GUI_EXPORT QStatusTipEvent : public QEvent
896 {
898 public:
899  explicit QStatusTipEvent(const QString &tip);
900  ~QStatusTipEvent();
901 
902  QStatusTipEvent *clone() const override { return new QStatusTipEvent(*this); }
903 
904  inline QString tip() const { return m_tip; }
905 private:
906  QString m_tip;
907 };
908 #endif
909 
910 #if QT_CONFIG(whatsthis)
911 class Q_GUI_EXPORT QWhatsThisClickedEvent : public QEvent
912 {
913  Q_EVENT_DISABLE_COPY(QWhatsThisClickedEvent);
914 public:
915  explicit QWhatsThisClickedEvent(const QString &href);
916  ~QWhatsThisClickedEvent();
917 
918  QWhatsThisClickedEvent *clone() const override { return new QWhatsThisClickedEvent(*this); }
919 
920  inline QString href() const { return m_href; }
921 private:
922  QString m_href;
923 };
924 #endif
925 
926 #if QT_CONFIG(action)
927 class Q_GUI_EXPORT QActionEvent : public QEvent
928 {
930 public:
931  QActionEvent(int type, QAction *action, QAction *before = nullptr);
932  ~QActionEvent();
933 
934  QActionEvent *clone() const override { return new QActionEvent(*this); }
935 
936  inline QAction *action() const { return m_action; }
937  inline QAction *before() const { return m_before; }
938 private:
939  QAction *m_action;
940  QAction *m_before;
941 };
942 #endif // QT_CONFIG(action)
943 
944 class Q_GUI_EXPORT QFileOpenEvent : public QEvent
945 {
947 public:
948  explicit QFileOpenEvent(const QString &file);
949  explicit QFileOpenEvent(const QUrl &url);
950  ~QFileOpenEvent();
951 
952  QFileOpenEvent *clone() const override { return new QFileOpenEvent(*this); }
953 
954  inline QString file() const { return m_file; }
955  QUrl url() const { return m_url; }
956  bool openFile(QFile &file, QIODevice::OpenMode flags) const;
957 private:
958  QString m_file;
959  QUrl m_url;
960 };
961 
962 #ifndef QT_NO_TOOLBAR
963 class Q_GUI_EXPORT QToolBarChangeEvent : public QEvent
964 {
966 public:
967  explicit QToolBarChangeEvent(bool t);
969 
970  QToolBarChangeEvent *clone() const override { return new QToolBarChangeEvent(*this); }
971 
972  inline bool toggle() const { return m_toggle; }
973 private:
974  bool m_toggle;
975 };
976 #endif
977 
978 #if QT_CONFIG(shortcut)
979 class Q_GUI_EXPORT QShortcutEvent : public QEvent
980 {
982 public:
983  QShortcutEvent(const QKeySequence &key, int id, bool ambiguous = false);
984  ~QShortcutEvent();
985 
986  QShortcutEvent *clone() const override { return new QShortcutEvent(*this); }
987 
988  inline const QKeySequence &key() const { return m_sequence; }
989  inline int shortcutId() const { return m_shortcutId; }
990  inline bool isAmbiguous() const { return m_ambiguous; }
991 protected:
992  QKeySequence m_sequence;
993  int m_shortcutId;
994  bool m_ambiguous;
995 };
996 #endif
997 
998 class Q_GUI_EXPORT QWindowStateChangeEvent: public QEvent
999 {
1001 public:
1002  explicit QWindowStateChangeEvent(Qt::WindowStates oldState, bool isOverride = false);
1004 
1005  QWindowStateChangeEvent *clone() const override { return new QWindowStateChangeEvent(*this); }
1006 
1007  inline Qt::WindowStates oldState() const { return m_oldStates; }
1008  bool isOverride() const;
1009 
1010 private:
1011  Qt::WindowStates m_oldStates;
1012  bool m_override;
1013 };
1014 
1015 #ifndef QT_NO_DEBUG_STREAM
1016 Q_GUI_EXPORT QDebug operator<<(QDebug, const QEvent *);
1017 #endif
1018 
1019 class Q_GUI_EXPORT QTouchEvent : public QPointerEvent
1020 {
1022 public:
1023  using TouchPoint = QEventPoint; // source compat
1024 
1025  explicit QTouchEvent(QEvent::Type eventType,
1026  const QPointingDevice *device = nullptr,
1027  Qt::KeyboardModifiers modifiers = Qt::NoModifier,
1028  const QList<QEventPoint> &touchPoints = {});
1029 #if QT_DEPRECATED_SINCE(6, 0)
1030  QT_DEPRECATED_VERSION_X_6_0("Use another constructor")
1031  explicit QTouchEvent(QEvent::Type eventType,
1033  Qt::KeyboardModifiers modifiers,
1034  QEventPoint::States touchPointStates,
1035  const QList<QEventPoint> &touchPoints = {});
1036 #endif
1037  ~QTouchEvent();
1038 
1039  QTouchEvent *clone() const override { return new QTouchEvent(*this); }
1040 
1041  inline QObject *target() const { return m_target; }
1042  inline QEventPoint::States touchPointStates() const { return m_touchPointStates; }
1043 #if QT_DEPRECATED_SINCE(6, 0)
1044  QT_DEPRECATED_VERSION_X_6_0("Use points()")
1045  const QList<QEventPoint> &touchPoints() const { return points(); }
1046 #endif
1047  bool isBeginEvent() const override;
1048  bool isUpdateEvent() const override;
1049  bool isEndEvent() const override;
1050 
1051 protected:
1052  QObject *m_target = nullptr;
1053  QEventPoint::States m_touchPointStates = QEventPoint::State::Unknown;
1055 };
1056 
1057 class Q_GUI_EXPORT QScrollPrepareEvent : public QEvent
1058 {
1060 public:
1061  explicit QScrollPrepareEvent(const QPointF &startPos);
1063 
1064  QScrollPrepareEvent *clone() const override { return new QScrollPrepareEvent(*this); }
1065 
1066  QPointF startPos() const { return m_startPos; }
1067 
1068  QSizeF viewportSize() const { return m_viewportSize; }
1069  QRectF contentPosRange() const { return m_contentPosRange; }
1070  QPointF contentPos() const { return m_contentPos; }
1071 
1072  void setViewportSize(const QSizeF &size);
1073  void setContentPosRange(const QRectF &rect);
1074  void setContentPos(const QPointF &pos);
1075 
1076 private:
1077  QRectF m_contentPosRange;
1078  QSizeF m_viewportSize;
1079  QPointF m_startPos;
1080  QPointF m_contentPos;
1081 };
1082 
1083 
1084 class Q_GUI_EXPORT QScrollEvent : public QEvent
1085 {
1087 public:
1089  {
1092  ScrollFinished
1093  };
1094 
1095  QScrollEvent(const QPointF &contentPos, const QPointF &overshoot, ScrollState scrollState);
1096  ~QScrollEvent();
1097 
1098  QScrollEvent *clone() const override { return new QScrollEvent(*this); }
1099 
1100  QPointF contentPos() const { return m_contentPos; }
1101  QPointF overshootDistance() const { return m_overshoot; }
1102  ScrollState scrollState() const { return m_state; }
1103 
1104 private:
1105  QPointF m_contentPos;
1106  QPointF m_overshoot;
1107  QScrollEvent::ScrollState m_state;
1108 };
1109 
1110 class Q_GUI_EXPORT QScreenOrientationChangeEvent : public QEvent
1111 {
1113 public:
1116 
1117  QScreenOrientationChangeEvent *clone() const override { return new QScreenOrientationChangeEvent(*this); }
1118 
1119  QScreen *screen() const { return m_screen; }
1120  Qt::ScreenOrientation orientation() const { return m_orientation; }
1121 
1122 private:
1123  QScreen *m_screen;
1124  Qt::ScreenOrientation m_orientation;
1125 };
1126 
1127 class Q_GUI_EXPORT QApplicationStateChangeEvent : public QEvent
1128 {
1130 public:
1132 
1133  QApplicationStateChangeEvent *clone() const override { return new QApplicationStateChangeEvent(*this); }
1134 
1135  Qt::ApplicationState applicationState() const { return m_applicationState; }
1136 
1137 private:
1138  Qt::ApplicationState m_applicationState;
1139 };
1140 
1142 
1143 #endif // QEVENT_H
small capitals from c petite p scientific i
[1]
Definition: afcover.h:80
#define value
[5]
The QActionEvent class provides an event that is generated when a QAction is added,...
The QAction class provides an abstraction for user commands that can be added to different user inter...
Definition: qaction.h:65
The QApplication class manages the GUI application's control flow and main settings.
Definition: qapplication.h:68
QApplicationStateChangeEvent * clone() const override
Definition: qevent.h:1133
Qt::ApplicationState applicationState() const
Definition: qevent.h:1135
The QCloseEvent class contains parameters that describe a close event.
Definition: qevent.h:629
The QContextMenuEvent class contains parameters that describe a context menu event....
Definition: qevent.h:665
int y() const
Definition: qevent.h:678
const QPoint & pos() const
Definition: qevent.h:682
const QPoint & globalPos() const
Definition: qevent.h:683
int x() const
Definition: qevent.h:677
int globalY() const
Definition: qevent.h:680
QPoint m_globalPos
Definition: qevent.h:689
int globalX() const
Definition: qevent.h:679
Reason reason() const
Definition: qevent.h:685
QContextMenuEvent * clone() const override
Definition: qevent.h:675
QPoint m_pos
Definition: qevent.h:688
operator<<(QDataStream &ds, qfloat16 f)
Definition: qfloat16.cpp:327
The QDebug class provides an output stream for debugging information.
Definition: qdebug.h:65
The QEnterEvent class contains parameters that describe an enter event.
Definition: qevent.h:197
QEnterEvent * clone() const override
Definition: qevent.h:204
The QEvent class is the base class of all event classes. Event objects contain event parameters.
Definition: qcoreevent.h:58
virtual void setAccepted(bool accepted)
Definition: qcoreevent.h:310
@ FocusOut
Definition: qcoreevent.h:80
@ FocusIn
Definition: qcoreevent.h:79
Type type() const
Definition: qcoreevent.h:307
void ignore()
Definition: qcoreevent.h:314
virtual QEvent * clone() const
Definition: qcoreevent.cpp:361
void accept()
Definition: qcoreevent.h:313
The QEventPoint class provides information about a point in a QPointerEvent.
Definition: qeventpoint.h:56
The QExposeEvent class contains event parameters for expose events. \inmodule QtGui.
Definition: qevent.h:574
QExposeEvent * clone() const override
Definition: qevent.h:580
QRegion m_region
Definition: qevent.h:588
The QFile class provides an interface for reading from and writing to files.
Definition: qfile.h:94
The QFileOpenEvent class provides an event that will be sent when there is a request to open a file o...
Definition: qevent.h:945
QUrl url() const
Definition: qevent.h:955
QString file() const
Definition: qevent.h:954
QFileOpenEvent * clone() const override
Definition: qevent.h:952
The QFocusEvent class contains event parameters for widget focus events. \inmodule QtGui.
Definition: qevent.h:520
QFocusEvent * clone() const override
Definition: qevent.h:526
bool lostFocus() const
Definition: qevent.h:529
bool gotFocus() const
Definition: qevent.h:528
The QGesture class represents a gesture, containing properties that describe the corresponding user i...
Definition: qgesture.h:62
The QHelpEvent class provides an event that is used to request helpful information about a particular...
Definition: qevent.h:873
QHelpEvent * clone() const override
Definition: qevent.h:879
int x() const
Definition: qevent.h:881
const QPoint & globalPos() const
Definition: qevent.h:887
const QPoint & pos() const
Definition: qevent.h:886
int y() const
Definition: qevent.h:882
int globalY() const
Definition: qevent.h:884
int globalX() const
Definition: qevent.h:883
The QHideEvent class provides an event which is sent after a widget is hidden.
Definition: qevent.h:656
The QHoverEvent class contains parameters that describe a mouse event.
Definition: qevent.h:281
QPoint oldPos() const
Definition: qevent.h:310
QPointF oldPosF() const
Definition: qevent.h:311
bool isUpdateEvent() const override
Definition: qevent.h:307
QHoverEvent * clone() const override
Definition: qevent.h:295
QPointF m_oldPos
Definition: qevent.h:314
The QIconDragEvent class indicates that a main icon drag has begun. \inmodule QtGui.
Definition: qevent.h:638
The QInputDevice class describes a device from which a QInputEvent originates.
Definition: qinputdevice.h:53
DeviceType type
Definition: qinputdevice.h:57
static const QInputDevice * primaryKeyboard(const QString &seatName=QString())
The QInputEvent class is the base class for events that describe user input.
Definition: qevent.h:76
QInputEvent * clone() const override
Definition: qevent.h:81
QInputDevice::DeviceType deviceType() const
Definition: qevent.h:84
virtual void setTimestamp(quint64 timestamp)
Definition: qevent.h:88
const QInputDevice * device() const
Definition: qevent.h:83
quint64 timestamp() const
Definition: qevent.h:87
QInputEvent(Type type, PointerEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
QInputEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
void setModifiers(Qt::KeyboardModifiers modifiers)
Definition: qevent.h:86
Qt::KeyboardModifiers modifiers() const
Definition: qevent.h:85
The QInputMethodEvent::Attribute class stores an input method attribute.
Definition: qevent.h:706
Attribute(AttributeType typ, int s, int l, QVariant val)
Definition: qevent.h:708
Attribute(AttributeType typ, int s, int l)
Definition: qevent.h:709
The QInputMethodEvent class provides parameters for input method events. \inmodule QtGui.
Definition: qevent.h:696
const QString & preeditString() const
Definition: qevent.h:724
int replacementLength() const
Definition: qevent.h:728
const QString & commitString() const
Definition: qevent.h:726
int replacementStart() const
Definition: qevent.h:727
friend bool operator!=(const QInputMethodEvent::Attribute &lhs, const QInputMethodEvent::Attribute &rhs)
Definition: qevent.h:737
friend bool operator==(const QInputMethodEvent::Attribute &lhs, const QInputMethodEvent::Attribute &rhs)
Definition: qevent.h:730
const QList< Attribute > & attributes() const
Definition: qevent.h:723
QInputMethodEvent * clone() const override
Definition: qevent.h:720
The QInputMethodQueryEvent class provides an event sent by the input context to input objects.
Definition: qevent.h:753
QInputMethodQueryEvent * clone() const override
Definition: qevent.h:759
Qt::InputMethodQueries queries() const
Definition: qevent.h:761
The QKeyEvent class describes a key event.
Definition: qevent.h:471
quint16 m_autoRepeat
Definition: qevent.h:515
int count() const
Definition: qevent.h:495
quint32 m_virtualKey
Definition: qevent.h:512
quint32 nativeScanCode() const
Definition: qevent.h:497
QString text() const
Definition: qevent.h:493
quint16 m_count
Definition: qevent.h:514
quint32 nativeVirtualKey() const
Definition: qevent.h:498
bool isAutoRepeat() const
Definition: qevent.h:494
QString m_text
Definition: qevent.h:509
quint32 m_nativeModifiers
Definition: qevent.h:513
quint32 nativeModifiers() const
Definition: qevent.h:499
QKeyEvent * clone() const override
Definition: qevent.h:482
int key() const
Definition: qevent.h:484
quint32 m_scanCode
Definition: qevent.h:511
QKeyCombination keyCombination() const
Definition: qevent.h:489
int m_key
Definition: qevent.h:510
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition: qkeysequence.h:71
The QMimeData class provides a container for data that records information about its MIME type.
Definition: qmimedata.h:52
The QMouseEvent class contains parameters that describe a mouse event.
Definition: qevent.h:231
QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
QMouseEvent * clone() const override
Definition: qevent.h:251
QMouseEvent(Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
QPoint pos() const
Definition: qevent.h:254
The QMoveEvent class contains event parameters for move events. \inmodule QtGui.
Definition: qevent.h:558
const QPoint & oldPos() const
Definition: qevent.h:567
QMoveEvent * clone() const override
Definition: qevent.h:564
QPoint m_oldPos
Definition: qevent.h:569
const QPoint & pos() const
Definition: qevent.h:566
The QNativeGestureEvent class contains parameters that describe a gesture event. \inmodule QtGui.
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
The QPaintEvent class contains event parameters for paint events. \inmodule QtGui.
Definition: qevent.h:539
bool m_erased
Definition: qevent.h:554
const QRegion & region() const
Definition: qevent.h:549
QRect m_rect
Definition: qevent.h:552
const QRect & rect() const
Definition: qevent.h:548
QRegion m_region
Definition: qevent.h:553
QPaintEvent * clone() const override
Definition: qevent.h:546
The QPlatformSurfaceEvent class is used to notify about native platform surface events....
Definition: qevent.h:592
QPlatformSurfaceEvent * clone() const override
Definition: qevent.h:603
SurfaceEventType m_surfaceEventType
Definition: qevent.h:608
SurfaceEventType surfaceEventType() const
Definition: qevent.h:605
The QPointF class defines a point in the plane using floating point precision.
Definition: qpoint.h:242
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:52
A base class for pointer events.
Definition: qevent.h:102
virtual bool isEndEvent() const
Definition: qevent.h:123
qsizetype pointCount() const
Definition: qevent.h:116
QList< QEventPoint > m_points
Definition: qevent.h:136
void setExclusiveGrabber(const QEventPoint &point, QObject *exclusiveGrabber)
Definition: qevent.cpp:393
virtual bool isBeginEvent() const
Definition: qevent.h:121
QObject * exclusiveGrabber(const QEventPoint &point) const
Definition: qevent.cpp:375
QPointerEvent * clone() const override
Definition: qevent.h:109
QPointerEvent(Type type, const QPointingDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier, const QList< QEventPoint > &points={})
QPointingDevice::PointerType pointerType() const
Definition: qevent.h:112
const QList< QEventPoint > & points() const
Definition: qevent.h:118
QPointerEvent(Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
virtual bool isUpdateEvent() const
Definition: qevent.h:122
The QPointingDevice class describes a device from which mouse, touch or tablet events originate.
static const QPointingDevice * primaryPointingDevice(const QString &seatName=QString())
The QRectF class defines a finite rectangle in the plane using floating point precision.
Definition: qrect.h:511
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:59
The QRegion class specifies a clip region for a painter.
Definition: qregion.h:63
The QResizeEvent class contains event parameters for resize events. \inmodule QtGui.
Definition: qevent.h:612
QSize m_oldSize
Definition: qevent.h:623
const QSize & oldSize() const
Definition: qevent.h:621
const QSize & size() const
Definition: qevent.h:620
QResizeEvent * clone() const override
Definition: qevent.h:618
The QScreen class is used to query screen properties. \inmodule QtGui.
Definition: qscreen.h:68
QScreenOrientationChangeEvent * clone() const override
Definition: qevent.h:1117
QScreen * screen() const
Definition: qevent.h:1119
Qt::ScreenOrientation orientation() const
Definition: qevent.h:1120
The QScrollEvent class is sent when scrolling.
Definition: qevent.h:1085
ScrollState scrollState() const
Definition: qevent.h:1102
QScrollEvent * clone() const override
Definition: qevent.h:1098
QPointF contentPos() const
Definition: qevent.h:1100
QPointF overshootDistance() const
Definition: qevent.h:1101
@ ScrollStarted
Definition: qevent.h:1090
@ ScrollUpdated
Definition: qevent.h:1091
The QScrollPrepareEvent class is sent in preparation of scrolling.
Definition: qevent.h:1058
QScrollPrepareEvent * clone() const override
Definition: qevent.h:1064
QPointF contentPos() const
Definition: qevent.h:1070
QPointF startPos() const
Definition: qevent.h:1066
QRectF contentPosRange() const
Definition: qevent.h:1069
QSizeF viewportSize() const
Definition: qevent.h:1068
The QShortcutEvent class provides an event which is generated when the user presses a key combination...
The QShowEvent class provides an event that is sent when a widget is shown.
Definition: qevent.h:647
A base class for pointer events containing a single point, such as mouse events.
Definition: qevent.h:140
quint16 m_reserved2
Definition: qevent.h:188
QPointF globalPosition() const
Definition: qevent.h:154
QSinglePointEvent * clone() const override
Definition: qevent.h:166
Qt::MouseEventSource m_source
Definition: qevent.h:180
QPointF position() const
Definition: qevent.h:150
quint16 m_invertedScrolling
Definition: qevent.h:193
void setExclusivePointGrabber(QObject *exclusiveGrabber)
Definition: qevent.h:163
QSinglePointEvent(Type type, const QPointingDevice *dev, const QEventPoint &point, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source)
QSinglePointEvent(Type type, const QPointingDevice *dev, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source=Qt::MouseEventNotSynthesized)
QObject * exclusivePointGrabber() const
Definition: qevent.h:161
quint16 m_doubleClick
Definition: qevent.h:190
quint16 m_reserved
Definition: qevent.h:187
QPointF scenePosition() const
Definition: qevent.h:152
Qt::MouseButton button() const
Definition: qevent.h:147
Qt::MouseButtons buttons() const
Definition: qevent.h:148
quint16 m_phase
Definition: qevent.h:192
The QSizeF class defines the size of a two-dimensional object using floating point precision.
Definition: qsize.h:235
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:55
The QStatusTipEvent class provides an event that is used to show messages in a status bar.
Definition: qevent.h:896
QStatusTipEvent * clone() const override
Definition: qevent.h:902
QString tip() const
Definition: qevent.h:904
The QString class provides a Unicode character string.
Definition: qstring.h:388
QToolBarChangeEvent * clone() const override
Definition: qevent.h:970
bool toggle() const
Definition: qevent.h:972
The QTouchEvent class contains parameters that describe a touch event.
Definition: qevent.h:1020
QObject * target() const
Definition: qevent.h:1041
QTouchEvent * clone() const override
Definition: qevent.h:1039
QEventPoint::States touchPointStates() const
Definition: qevent.h:1042
quint32 m_reserved
Definition: qevent.h:1054
The QUrl class provides a convenient interface for working with URLs.
Definition: qurl.h:130
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:95
The QVector2D class represents a vector or vertex in 2D space.
Definition: qvectornd.h:62
The QWindowStateChangeEvent class provides the window state before a window state change.
Definition: qevent.h:999
Qt::WindowStates oldState() const
Definition: qevent.h:1007
QWindowStateChangeEvent * clone() const override
Definition: qevent.h:1005
float rotation
QPushButton * button
[2]
double e
rect
[4]
else opt state
[0]
auto it unsigned count const
Definition: hb-iter.hh:848
#define inline
Definition: md4c.c:45
QHighDpiScaling::Point position(T, QHighDpiScaling::Point::Kind)
Definition: qnamespace.h:55
InputMethodQuery
Definition: qnamespace.h:1380
MouseButton
Definition: qnamespace.h:81
@ NoButton
Definition: qnamespace.h:82
MouseEventSource
Definition: qnamespace.h:1703
@ MouseEventNotSynthesized
Definition: qnamespace.h:1704
ScreenOrientation
Definition: qnamespace.h:296
@ NoModifier
Definition: qnamespace.h:1074
DropAction
Definition: qnamespace.h:1484
ApplicationState
Definition: qnamespace.h:287
NativeGestureType
Definition: qnamespace.h:1663
ScrollPhase
Definition: qnamespace.h:1695
FocusReason
Definition: qnamespace.h:1360
@ OtherFocusReason
Definition: qnamespace.h:1368
action
Definition: devices.py:78
Definition: qfloat16.h:381
#define QString()
Definition: parse-defines.h:51
@ Mouse
#define Q_EVENT_DISABLE_COPY(Class)
Definition: qcoreevent.h:49
EGLOutputLayerEXT EGLint EGLAttrib value
Q_DECLARE_TYPEINFO(QInputMethodEvent::Attribute, Q_RELOCATABLE_TYPE)
int qRound(qfloat16 d) noexcept
Definition: qfloat16.h:227
unsigned int quint32
Definition: qglobal.h:288
#define QT_DEPRECATED_VERSION_X_6_3(text)
Definition: qglobal.h:468
unsigned short quint16
Definition: qglobal.h:286
QT_END_INCLUDE_NAMESPACE typedef double qreal
Definition: qglobal.h:341
unsigned long long quint64
Definition: qglobal.h:299
ptrdiff_t qsizetype
Definition: qglobal.h:308
unsigned int uint
Definition: qglobal.h:334
#define QT_DEPRECATED_VERSION_X_6_0(text)
Definition: qglobal.h:444
#define QT_DEPRECATED_VERSION_X_6_2(text)
Definition: qglobal.h:460
long long qint64
Definition: qglobal.h:298
@ text
bool operator==(const QMakeBaseKey &one, const QMakeBaseKey &two)
GLenum GLuint GLenum GLsizei length
Definition: qopengl.h:270
GLenum type
Definition: qopengl.h:270
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat z
GLint GLint GLint GLint GLint x
[0]
GLuint64 key
GLboolean r
[2]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLenum GLsizei count
GLbitfield flags
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint start
GLint first
GLint y
GLsizei GLsizei GLchar * source
GLfixed GLfixed GLint GLint GLfixed points
Definition: qopenglext.h:5206
GLenum query
Definition: qopenglext.h:2738
GLuint GLfloat * val
Definition: qopenglext.h:1513
GLdouble GLdouble t
[9]
Definition: qopenglext.h:243
GLdouble s
[6]
Definition: qopenglext.h:235
#define Q_ASSERT(cond)
Definition: qrandom.cpp:84
#define Q_PROPERTY(...)
Definition: qtmetamacros.h:92
#define Q_GADGET
Definition: qtmetamacros.h:193
@ Q_RELOCATABLE_TYPE
Definition: qtypeinfo.h:156
#define explicit
QScreen * screen
[1]
Definition: main.cpp:76
QFile file
[0]
QUrl url("http://www.example.com/List of holidays.xml")
[0]
QMimeData * mimeData
setDropAction(proposedAction())
[0]
header setValue("Host", "qt-project.org")
Definition: moc.h:48
#define rhs