QtBase  v6.3.1
qwidget.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtWidgets 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 QWIDGET_H
41 #define QWIDGET_H
42 
43 #include <QtWidgets/qtwidgetsglobal.h>
44 #include <QtGui/qwindowdefs.h>
45 #include <QtCore/qobject.h>
46 #include <QtCore/qmargins.h>
47 #include <QtGui/qaction.h>
48 #include <QtGui/qpaintdevice.h>
49 #include <QtGui/qpalette.h>
50 #include <QtGui/qfont.h>
51 #include <QtGui/qfontmetrics.h>
52 #include <QtGui/qfontinfo.h>
53 #include <QtWidgets/qsizepolicy.h>
54 #include <QtGui/qregion.h>
55 #include <QtGui/qbrush.h>
56 #include <QtGui/qcursor.h>
57 #if QT_CONFIG(shortcut)
58 # include <QtGui/qkeysequence.h>
59 #endif
60 
61 #ifdef QT_INCLUDE_COMPAT
62 #include <QtGui/qevent.h>
63 #endif
64 
66 
67 
68 class QLayout;
69 class QStyle;
70 class QAction;
71 class QVariant;
72 class QWindow;
73 class QActionEvent;
74 class QMouseEvent;
75 class QWheelEvent;
76 class QHoverEvent;
77 class QKeyEvent;
78 class QEnterEvent;
79 class QFocusEvent;
80 class QPaintEvent;
81 class QMoveEvent;
82 class QResizeEvent;
83 class QCloseEvent;
84 class QContextMenuEvent;
85 class QInputMethodEvent;
86 class QTabletEvent;
87 class QDragEnterEvent;
88 class QDragMoveEvent;
89 class QDragLeaveEvent;
90 class QDropEvent;
91 class QScreen;
92 class QShowEvent;
93 class QHideEvent;
94 class QIcon;
95 class QBackingStore;
96 class QPlatformWindow;
97 class QLocale;
99 class QGraphicsEffect;
100 class QRasterWindowSurface;
101 class QUnifiedToolbarSurface;
102 class QPixmap;
103 #ifndef QT_NO_DEBUG_STREAM
104 class QDebug;
105 #endif
106 
108 {
109 public:
110  WId winid;
112  Qt::WindowFlags window_flags;
119  mutable uint fstrut_dirty : 1;
123  uint unused : 13;
125  mutable QPalette pal;
128 };
129 
130 class QWidgetPrivate;
131 
132 class Q_WIDGETS_EXPORT QWidget : public QObject, public QPaintDevice
133 {
134  Q_OBJECT
135  Q_DECLARE_PRIVATE(QWidget)
136 
137  Q_PROPERTY(bool modal READ isModal)
138  Q_PROPERTY(Qt::WindowModality windowModality READ windowModality WRITE setWindowModality)
139  Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
140  Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry)
141  Q_PROPERTY(QRect frameGeometry READ frameGeometry)
142  Q_PROPERTY(QRect normalGeometry READ normalGeometry)
143  Q_PROPERTY(int x READ x)
144  Q_PROPERTY(int y READ y)
145  Q_PROPERTY(QPoint pos READ pos WRITE move DESIGNABLE false STORED false)
146  Q_PROPERTY(QSize frameSize READ frameSize)
147  Q_PROPERTY(QSize size READ size WRITE resize DESIGNABLE false STORED false)
148  Q_PROPERTY(int width READ width)
149  Q_PROPERTY(int height READ height)
150  Q_PROPERTY(QRect rect READ rect)
151  Q_PROPERTY(QRect childrenRect READ childrenRect)
152  Q_PROPERTY(QRegion childrenRegion READ childrenRegion)
154  Q_PROPERTY(QSize minimumSize READ minimumSize WRITE setMinimumSize)
155  Q_PROPERTY(QSize maximumSize READ maximumSize WRITE setMaximumSize)
156  Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth STORED false
157  DESIGNABLE false)
158  Q_PROPERTY(int minimumHeight READ minimumHeight WRITE setMinimumHeight STORED false
159  DESIGNABLE false)
160  Q_PROPERTY(int maximumWidth READ maximumWidth WRITE setMaximumWidth STORED false
161  DESIGNABLE false)
162  Q_PROPERTY(int maximumHeight READ maximumHeight WRITE setMaximumHeight STORED false
163  DESIGNABLE false)
164  Q_PROPERTY(QSize sizeIncrement READ sizeIncrement WRITE setSizeIncrement)
165  Q_PROPERTY(QSize baseSize READ baseSize WRITE setBaseSize)
166  Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
167  Q_PROPERTY(QFont font READ font WRITE setFont)
168 #ifndef QT_NO_CURSOR
169  Q_PROPERTY(QCursor cursor READ cursor WRITE setCursor RESET unsetCursor)
170 #endif
171  Q_PROPERTY(bool mouseTracking READ hasMouseTracking WRITE setMouseTracking)
172  Q_PROPERTY(bool tabletTracking READ hasTabletTracking WRITE setTabletTracking)
173  Q_PROPERTY(bool isActiveWindow READ isActiveWindow)
174  Q_PROPERTY(Qt::FocusPolicy focusPolicy READ focusPolicy WRITE setFocusPolicy)
175  Q_PROPERTY(bool focus READ hasFocus)
176  Q_PROPERTY(Qt::ContextMenuPolicy contextMenuPolicy READ contextMenuPolicy WRITE setContextMenuPolicy)
177  Q_PROPERTY(bool updatesEnabled READ updatesEnabled WRITE setUpdatesEnabled DESIGNABLE false)
178  Q_PROPERTY(bool visible READ isVisible WRITE setVisible DESIGNABLE false)
179  Q_PROPERTY(bool minimized READ isMinimized)
180  Q_PROPERTY(bool maximized READ isMaximized)
181  Q_PROPERTY(bool fullScreen READ isFullScreen)
182  Q_PROPERTY(QSize sizeHint READ sizeHint)
183  Q_PROPERTY(QSize minimumSizeHint READ minimumSizeHint)
184  Q_PROPERTY(bool acceptDrops READ acceptDrops WRITE setAcceptDrops)
185  Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle NOTIFY windowTitleChanged)
186  Q_PROPERTY(QIcon windowIcon READ windowIcon WRITE setWindowIcon NOTIFY windowIconChanged)
187  Q_PROPERTY(QString windowIconText READ windowIconText WRITE setWindowIconText NOTIFY windowIconTextChanged) // deprecated
188  Q_PROPERTY(double windowOpacity READ windowOpacity WRITE setWindowOpacity)
189  Q_PROPERTY(bool windowModified READ isWindowModified WRITE setWindowModified)
190 #if QT_CONFIG(tooltip)
191  Q_PROPERTY(QString toolTip READ toolTip WRITE setToolTip)
192  Q_PROPERTY(int toolTipDuration READ toolTipDuration WRITE setToolTipDuration)
193 #endif
194 #if QT_CONFIG(statustip)
195  Q_PROPERTY(QString statusTip READ statusTip WRITE setStatusTip)
196 #endif
197 #if QT_CONFIG(whatsthis)
198  Q_PROPERTY(QString whatsThis READ whatsThis WRITE setWhatsThis)
199 #endif
200 #ifndef QT_NO_ACCESSIBILITY
201  Q_PROPERTY(QString accessibleName READ accessibleName WRITE setAccessibleName)
202  Q_PROPERTY(QString accessibleDescription READ accessibleDescription WRITE setAccessibleDescription)
203 #endif
204  Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection RESET unsetLayoutDirection)
205  QDOC_PROPERTY(Qt::WindowFlags windowFlags READ windowFlags WRITE setWindowFlags)
206  Q_PROPERTY(bool autoFillBackground READ autoFillBackground WRITE setAutoFillBackground)
207 #ifndef QT_NO_STYLE_STYLESHEET
208  Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet)
209 #endif
210  Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET unsetLocale)
211  Q_PROPERTY(QString windowFilePath READ windowFilePath WRITE setWindowFilePath)
212  Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints)
213 
214 #if 0
215  // ### TODO: make this work (requires SFINAE-friendly connect())
216  template <typename...Args>
217  using compatible_action_slot_args = std::void_t<
218  decltype(QObject::connect(std::declval<QAction*>(), &QAction::triggered,
219  std::declval<Args>()...))
220  >;
221 #else
222  // good-enough compromise for now
223  template <typename...Args>
224  using compatible_action_slot_args = std::enable_if_t<std::conjunction_v<
225 #if QT_CONFIG(shortcut)
226  std::disjunction<
227  std::is_same<Args, Qt::ConnectionType>,
228  std::negation<std::is_convertible<Args, QKeySequence>>
229  >...,
230 #endif
231  std::negation<std::is_convertible<Args, QIcon>>...,
232  std::negation<std::is_convertible<Args, const char*>>...,
233  std::negation<std::is_convertible<Args, QString>>...
234  >>;
235 #endif
236 public:
237  enum RenderFlag {
238  DrawWindowBackground = 0x1,
239  DrawChildren = 0x2,
240  IgnoreMask = 0x4
241  };
242  Q_DECLARE_FLAGS(RenderFlags, RenderFlag)
243 
244  explicit QWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
245  ~QWidget();
246 
247  int devType() const override;
248 
249  WId winId() const;
250  void createWinId(); // internal, going away
251  inline WId internalWinId() const { return data->winid; }
252  WId effectiveWinId() const;
253 
254  // GUI style setting
255  QStyle *style() const;
256  void setStyle(QStyle *);
257  // Widget types and states
258 
259 #if QT_DEPRECATED_SINCE(6, 1)
260  QT_DEPRECATED_VERSION_X_6_1("Use isWindow()")
261  bool isTopLevel() const;
262 #endif
263  bool isWindow() const;
264 
265  bool isModal() const;
266  Qt::WindowModality windowModality() const;
267  void setWindowModality(Qt::WindowModality windowModality);
268 
269  bool isEnabled() const;
270  bool isEnabledTo(const QWidget *) const;
271 
272 public Q_SLOTS:
273  void setEnabled(bool);
274  void setDisabled(bool);
275  void setWindowModified(bool);
276 
277  // Widget coordinates
278 
279 public:
280  QRect frameGeometry() const;
281  const QRect &geometry() const;
282  QRect normalGeometry() const;
283 
284  int x() const;
285  int y() const;
286  QPoint pos() const;
287  QSize frameSize() const;
288  QSize size() const;
289  inline int width() const;
290  inline int height() const;
291  inline QRect rect() const;
292  QRect childrenRect() const;
293  QRegion childrenRegion() const;
294 
295  QSize minimumSize() const;
296  QSize maximumSize() const;
297  int minimumWidth() const;
298  int minimumHeight() const;
299  int maximumWidth() const;
300  int maximumHeight() const;
301  void setMinimumSize(const QSize &);
302  void setMinimumSize(int minw, int minh);
303  void setMaximumSize(const QSize &);
304  void setMaximumSize(int maxw, int maxh);
305  void setMinimumWidth(int minw);
306  void setMinimumHeight(int minh);
307  void setMaximumWidth(int maxw);
308  void setMaximumHeight(int maxh);
309 
310 #ifdef Q_QDOC
311  void setupUi(QWidget *widget);
312 #endif
313 
314  QSize sizeIncrement() const;
315  void setSizeIncrement(const QSize &);
316  void setSizeIncrement(int w, int h);
317  QSize baseSize() const;
318  void setBaseSize(const QSize &);
319  void setBaseSize(int basew, int baseh);
320 
321  void setFixedSize(const QSize &);
322  void setFixedSize(int w, int h);
323  void setFixedWidth(int w);
324  void setFixedHeight(int h);
325 
326  // Widget coordinate mapping
327 
328  QPointF mapToGlobal(const QPointF &) const;
329  QPoint mapToGlobal(const QPoint &) const;
330  QPointF mapFromGlobal(const QPointF &) const;
331  QPoint mapFromGlobal(const QPoint &) const;
332  QPointF mapToParent(const QPointF &) const;
333  QPoint mapToParent(const QPoint &) const;
334  QPointF mapFromParent(const QPointF &) const;
335  QPoint mapFromParent(const QPoint &) const;
336  QPointF mapTo(const QWidget *, const QPointF &) const;
337  QPoint mapTo(const QWidget *, const QPoint &) const;
338  QPointF mapFrom(const QWidget *, const QPointF &) const;
339  QPoint mapFrom(const QWidget *, const QPoint &) const;
340 
341  QWidget *window() const;
342  QWidget *nativeParentWidget() const;
343  inline QWidget *topLevelWidget() const { return window(); }
344 
345  // Widget appearance functions
346  const QPalette &palette() const;
347  void setPalette(const QPalette &);
348 
350  QPalette::ColorRole backgroundRole() const;
351 
352  void setForegroundRole(QPalette::ColorRole);
353  QPalette::ColorRole foregroundRole() const;
354 
355  const QFont &font() const;
356  void setFont(const QFont &);
357  QFontMetrics fontMetrics() const;
358  QFontInfo fontInfo() const;
359 
360 #ifndef QT_NO_CURSOR
361  QCursor cursor() const;
362  void setCursor(const QCursor &);
363  void unsetCursor();
364 #endif
365 
366  void setMouseTracking(bool enable);
367  bool hasMouseTracking() const;
368  bool underMouse() const;
369 
370  void setTabletTracking(bool enable);
371  bool hasTabletTracking() const;
372 
373  void setMask(const QBitmap &);
374  void setMask(const QRegion &);
375  QRegion mask() const;
376  void clearMask();
377 
378  void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(),
379  const QRegion &sourceRegion = QRegion(),
380  RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
381 
382  void render(QPainter *painter, const QPoint &targetOffset = QPoint(),
383  const QRegion &sourceRegion = QRegion(),
384  RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
385 
386  Q_INVOKABLE QPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)));
387 
388 #if QT_CONFIG(graphicseffect)
389  QGraphicsEffect *graphicsEffect() const;
390  void setGraphicsEffect(QGraphicsEffect *effect);
391 #endif // QT_CONFIG(graphicseffect)
392 
393 #ifndef QT_NO_GESTURES
394  void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
395  void ungrabGesture(Qt::GestureType type);
396 #endif
397 
398 public Q_SLOTS:
399  void setWindowTitle(const QString &);
400 #ifndef QT_NO_STYLE_STYLESHEET
401  void setStyleSheet(const QString& styleSheet);
402 #endif
403 public:
404 #ifndef QT_NO_STYLE_STYLESHEET
405  QString styleSheet() const;
406 #endif
407  QString windowTitle() const;
408  void setWindowIcon(const QIcon &icon);
409  QIcon windowIcon() const;
410  void setWindowIconText(const QString &);
411  QString windowIconText() const;
412  void setWindowRole(const QString &);
413  QString windowRole() const;
414  void setWindowFilePath(const QString &filePath);
415  QString windowFilePath() const;
416 
417  void setWindowOpacity(qreal level);
418  qreal windowOpacity() const;
419 
420  bool isWindowModified() const;
421 #if QT_CONFIG(tooltip)
422  void setToolTip(const QString &);
423  QString toolTip() const;
424  void setToolTipDuration(int msec);
425  int toolTipDuration() const;
426 #endif
427 #if QT_CONFIG(statustip)
428  void setStatusTip(const QString &);
429  QString statusTip() const;
430 #endif
431 #if QT_CONFIG(whatsthis)
432  void setWhatsThis(const QString &);
433  QString whatsThis() const;
434 #endif
435 #ifndef QT_NO_ACCESSIBILITY
436  QString accessibleName() const;
437  void setAccessibleName(const QString &name);
438  QString accessibleDescription() const;
439  void setAccessibleDescription(const QString &description);
440 #endif
441 
442  void setLayoutDirection(Qt::LayoutDirection direction);
443  Qt::LayoutDirection layoutDirection() const;
444  void unsetLayoutDirection();
445 
446  void setLocale(const QLocale &locale);
447  QLocale locale() const;
448  void unsetLocale();
449 
450  inline bool isRightToLeft() const { return layoutDirection() == Qt::RightToLeft; }
451  inline bool isLeftToRight() const { return layoutDirection() == Qt::LeftToRight; }
452 
453 public Q_SLOTS:
455 
456 public:
457  bool isActiveWindow() const;
458  void activateWindow();
459  void clearFocus();
460 
461  void setFocus(Qt::FocusReason reason);
462  Qt::FocusPolicy focusPolicy() const;
463  void setFocusPolicy(Qt::FocusPolicy policy);
464  bool hasFocus() const;
465  static void setTabOrder(QWidget *, QWidget *);
466  void setFocusProxy(QWidget *);
467  QWidget *focusProxy() const;
468  Qt::ContextMenuPolicy contextMenuPolicy() const;
469  void setContextMenuPolicy(Qt::ContextMenuPolicy policy);
470 
471  // Grab functions
472  void grabMouse();
473 #ifndef QT_NO_CURSOR
474  void grabMouse(const QCursor &);
475 #endif
476  void releaseMouse();
477  void grabKeyboard();
478  void releaseKeyboard();
479 #ifndef QT_NO_SHORTCUT
480  int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut);
481  void releaseShortcut(int id);
482  void setShortcutEnabled(int id, bool enable = true);
483  void setShortcutAutoRepeat(int id, bool enable = true);
484 #endif
485  static QWidget *mouseGrabber();
486  static QWidget *keyboardGrabber();
487 
488  // Update/refresh functions
489  inline bool updatesEnabled() const;
490  void setUpdatesEnabled(bool enable);
491 
492 #if QT_CONFIG(graphicsview)
493  QGraphicsProxyWidget *graphicsProxyWidget() const;
494 #endif
495 
496 public Q_SLOTS:
497  void update();
498  void repaint();
499 
500 public:
501  inline void update(int x, int y, int w, int h);
502  void update(const QRect&);
503  void update(const QRegion&);
504 
505  void repaint(int x, int y, int w, int h);
506  void repaint(const QRect &);
507  void repaint(const QRegion &);
508 
509 public Q_SLOTS:
510  // Widget management functions
511 
512  virtual void setVisible(bool visible);
513  void setHidden(bool hidden);
514  void show();
515  void hide();
516 
517  void showMinimized();
518  void showMaximized();
519  void showFullScreen();
520  void showNormal();
521 
522  bool close();
523  void raise();
524  void lower();
525 
526 public:
527  void stackUnder(QWidget*);
528  void move(int x, int y);
529  void move(const QPoint &);
530  void resize(int w, int h);
531  void resize(const QSize &);
532  inline void setGeometry(int x, int y, int w, int h);
533  void setGeometry(const QRect &);
534  QByteArray saveGeometry() const;
535  bool restoreGeometry(const QByteArray &geometry);
536  void adjustSize();
537  bool isVisible() const;
538  bool isVisibleTo(const QWidget *) const;
539  inline bool isHidden() const;
540 
541  bool isMinimized() const;
542  bool isMaximized() const;
543  bool isFullScreen() const;
544 
545  Qt::WindowStates windowState() const;
546  void setWindowState(Qt::WindowStates state);
547  void overrideWindowState(Qt::WindowStates state);
548 
549  virtual QSize sizeHint() const;
550  virtual QSize minimumSizeHint() const;
551 
552  QSizePolicy sizePolicy() const;
554  inline void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical);
555  virtual int heightForWidth(int) const;
556  virtual bool hasHeightForWidth() const;
557 
558  QRegion visibleRegion() const;
559 
560  void setContentsMargins(int left, int top, int right, int bottom);
561  void setContentsMargins(const QMargins &margins);
562  QMargins contentsMargins() const;
563 
564  QRect contentsRect() const;
565 
566 public:
567  QLayout *layout() const;
568  void setLayout(QLayout *);
569  void updateGeometry();
570 
571  void setParent(QWidget *parent);
572  void setParent(QWidget *parent, Qt::WindowFlags f);
573 
574  void scroll(int dx, int dy);
575  void scroll(int dx, int dy, const QRect&);
576 
577  // Misc. functions
578 
579  QWidget *focusWidget() const;
580  QWidget *nextInFocusChain() const;
581  QWidget *previousInFocusChain() const;
582 
583  // drag and drop
584  bool acceptDrops() const;
585  void setAcceptDrops(bool on);
586 
587 #ifndef QT_NO_ACTION
588  //actions
589  void addAction(QAction *action);
590  void addActions(const QList<QAction*> &actions);
591  void insertActions(QAction *before, const QList<QAction*> &actions);
592  void insertAction(QAction *before, QAction *action);
593  void removeAction(QAction *action);
594  QList<QAction*> actions() const;
595 
596  // convenience action factories
597  QAction *addAction(const QString &text);
598  QAction *addAction(const QIcon &icon, const QString &text);
599  QAction *addAction(const QString &text, const QObject *receiver,
600  const char *member, Qt::ConnectionType type = Qt::AutoConnection);
601  QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver,
602  const char *member, Qt::ConnectionType type = Qt::AutoConnection);
603  template <typename...Args, typename = compatible_action_slot_args<Args...>>
605  {
606  QAction *result = addAction(text);
607  connect(result, &QAction::triggered, std::forward<Args>(args)...);
608  return result;
609  }
610  template <typename...Args, typename = compatible_action_slot_args<Args...>>
611  QAction *addAction(const QIcon &icon, const QString &text, Args&&...args)
612  {
613  QAction *result = addAction(icon, text);
614  connect(result, &QAction::triggered, std::forward<Args>(args)...);
615  return result;
616  }
617 
618 #if QT_CONFIG(shortcut)
619  QAction *addAction(const QString &text, const QKeySequence &shortcut);
620  QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut);
621  QAction *addAction(const QString &text, const QKeySequence &shortcut,
622  const QObject *receiver, const char *member,
624  QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut,
625  const QObject *receiver, const char *member,
627 
628  template <typename...Args, typename = compatible_action_slot_args<Args...>>
629  QAction *addAction(const QString &text, const QKeySequence &shortcut, Args&&...args)
630  {
631  QAction *result = addAction(text, shortcut);
632  connect(result, &QAction::triggered, std::forward<Args>(args)...);
633  return result;
634  }
635  template <typename...Args, typename = compatible_action_slot_args<Args...>>
636  QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args&&...args)
637  {
638  QAction *result = addAction(icon, text, shortcut);
639  connect(result, &QAction::triggered, std::forward<Args>(args)...);
640  return result;
641  }
642 #endif // QT_CONFIG(shortcut)
643 #endif // QT_NO_ACTION
644 
645  QWidget *parentWidget() const;
646 
647  void setWindowFlags(Qt::WindowFlags type);
648  inline Qt::WindowFlags windowFlags() const;
649  void setWindowFlag(Qt::WindowType, bool on = true);
650  void overrideWindowFlags(Qt::WindowFlags type);
651 
652  inline Qt::WindowType windowType() const;
653 
654  static QWidget *find(WId);
655  inline QWidget *childAt(int x, int y) const;
656  QWidget *childAt(const QPoint &p) const;
657 
658  void setAttribute(Qt::WidgetAttribute, bool on = true);
659  inline bool testAttribute(Qt::WidgetAttribute) const;
660 
661  QPaintEngine *paintEngine() const override;
662 
663  void ensurePolished() const;
664 
665  bool isAncestorOf(const QWidget *child) const;
666 
667 #ifdef QT_KEYPAD_NAVIGATION
668  bool hasEditFocus() const;
669  void setEditFocus(bool on);
670 #endif
671 
672  bool autoFillBackground() const;
673  void setAutoFillBackground(bool enabled);
674 
675  QBackingStore *backingStore() const;
676 
677  QWindow *windowHandle() const;
678  QScreen *screen() const;
679  void setScreen(QScreen *);
680 
681  static QWidget *createWindowContainer(QWindow *window, QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags());
682 
683 Q_SIGNALS:
686  void windowIconTextChanged(const QString &iconText);
688 
689 protected:
690  // Event handlers
691  bool event(QEvent *event) override;
692  virtual void mousePressEvent(QMouseEvent *event);
693  virtual void mouseReleaseEvent(QMouseEvent *event);
694  virtual void mouseDoubleClickEvent(QMouseEvent *event);
695  virtual void mouseMoveEvent(QMouseEvent *event);
696 #if QT_CONFIG(wheelevent)
697  virtual void wheelEvent(QWheelEvent *event);
698 #endif
699  virtual void keyPressEvent(QKeyEvent *event);
700  virtual void keyReleaseEvent(QKeyEvent *event);
701  virtual void focusInEvent(QFocusEvent *event);
702  virtual void focusOutEvent(QFocusEvent *event);
703  virtual void enterEvent(QEnterEvent *event);
704  virtual void leaveEvent(QEvent *event);
705  virtual void paintEvent(QPaintEvent *event);
706  virtual void moveEvent(QMoveEvent *event);
707  virtual void resizeEvent(QResizeEvent *event);
708  virtual void closeEvent(QCloseEvent *event);
709 #ifndef QT_NO_CONTEXTMENU
710  virtual void contextMenuEvent(QContextMenuEvent *event);
711 #endif
712 #if QT_CONFIG(tabletevent)
713  virtual void tabletEvent(QTabletEvent *event);
714 #endif
715 #ifndef QT_NO_ACTION
716  virtual void actionEvent(QActionEvent *event);
717 #endif
718 
719 #if QT_CONFIG(draganddrop)
720  virtual void dragEnterEvent(QDragEnterEvent *event);
721  virtual void dragMoveEvent(QDragMoveEvent *event);
722  virtual void dragLeaveEvent(QDragLeaveEvent *event);
723  virtual void dropEvent(QDropEvent *event);
724 #endif
725 
726  virtual void showEvent(QShowEvent *event);
727  virtual void hideEvent(QHideEvent *event);
728 
729  virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result);
730 
731  // Misc. protected functions
732  virtual void changeEvent(QEvent *);
733 
734  int metric(PaintDeviceMetric) const override;
735  void initPainter(QPainter *painter) const override;
736  QPaintDevice *redirected(QPoint *offset) const override;
737  QPainter *sharedPainter() const override;
738 
739  virtual void inputMethodEvent(QInputMethodEvent *);
740 public:
741  virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const;
742 
743  Qt::InputMethodHints inputMethodHints() const;
744  void setInputMethodHints(Qt::InputMethodHints hints);
745 
746 protected Q_SLOTS:
747  void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll);
748 protected:
749 
750  void create(WId = 0, bool initializeWindow = true,
751  bool destroyOldWindow = true);
752  void destroy(bool destroyWindow = true,
753  bool destroySubWindows = true);
754 
755  friend class QDataWidgetMapperPrivate; // for access to focusNextPrevChild
756  virtual bool focusNextPrevChild(bool next);
757  inline bool focusNextChild() { return focusNextPrevChild(true); }
758  inline bool focusPreviousChild() { return focusNextPrevChild(false); }
759 
760 protected:
761  QWidget(QWidgetPrivate &d, QWidget* parent, Qt::WindowFlags f);
762 private:
763  void setBackingStore(QBackingStore *store);
764 
765  bool testAttribute_helper(Qt::WidgetAttribute) const;
766 
767  QLayout *takeLayout();
768 
769  friend class QBackingStoreDevice;
770  friend class QWidgetRepaintManager;
771  friend class QApplication;
772  friend class QApplicationPrivate;
773  friend class QGuiApplication;
775  friend class QBaseApplication;
776  friend class QPainter;
777  friend class QPainterPrivate;
778  friend class QPixmap; // for QPixmap::fill()
779  friend class QFontMetrics;
780  friend class QFontInfo;
781  friend class QLayout;
782  friend class QWidgetItem;
783  friend class QWidgetItemV2;
784  friend class QX11PaintEngine;
785  friend class QWin32PaintEngine;
786  friend class QShortcutPrivate;
787  friend class QWindowSurface;
788  friend class QGraphicsProxyWidget;
790  friend class QStyleSheetStyle;
791  friend struct QWidgetExceptionCleaner;
792  friend class QWidgetWindow;
793  friend class QAccessibleWidget;
794  friend class QAccessibleTable;
795  friend class QAccessibleTabButton;
796 #ifndef QT_NO_GESTURES
797  friend class QGestureManager;
799 #endif // QT_NO_GESTURES
801 
802 #ifdef Q_OS_MAC
803  friend bool qt_mac_is_metal(const QWidget *w);
804 #endif
805  friend Q_WIDGETS_EXPORT QWidgetData *qt_qwidget_data(QWidget *widget);
806  friend Q_WIDGETS_EXPORT QWidgetPrivate *qt_widget_private(QWidget *widget);
807 
808 private:
810  Q_PRIVATE_SLOT(d_func(), void _q_showIfNotHidden())
811  Q_PRIVATE_SLOT(d_func(), QWindow *_q_closestWindowHandle())
812 
813  QWidgetData *data;
814 };
815 
817 
818 #ifndef Q_QDOC
820 {
821  if (!o || !o->isWidgetType()) return nullptr;
822  return static_cast<QWidget*>(o);
823 }
824 template <> inline const QWidget *qobject_cast<const QWidget*>(const QObject *o)
825 {
826  if (!o || !o->isWidgetType()) return nullptr;
827  return static_cast<const QWidget*>(o);
828 }
829 #endif // !Q_QDOC
830 
831 inline QWidget *QWidget::childAt(int ax, int ay) const
832 { return childAt(QPoint(ax, ay)); }
833 
835 { return static_cast<Qt::WindowType>(int(data->window_flags & Qt::WindowType_Mask)); }
836 inline Qt::WindowFlags QWidget::windowFlags() const
837 { return data->window_flags; }
838 
839 #if QT_DEPRECATED_SINCE(6, 1)
840 inline bool QWidget::isTopLevel() const
841 { return (windowType() & Qt::Window); }
842 #endif
843 
844 inline bool QWidget::isWindow() const
845 { return (windowType() & Qt::Window); }
846 
847 inline bool QWidget::isEnabled() const
848 { return !testAttribute(Qt::WA_Disabled); }
849 
850 inline bool QWidget::isModal() const
851 { return data->window_modality != Qt::NonModal; }
852 
853 inline int QWidget::minimumWidth() const
854 { return minimumSize().width(); }
855 
856 inline int QWidget::minimumHeight() const
857 { return minimumSize().height(); }
858 
859 inline int QWidget::maximumWidth() const
860 { return maximumSize().width(); }
861 
862 inline int QWidget::maximumHeight() const
863 { return maximumSize().height(); }
864 
865 inline void QWidget::setMinimumSize(const QSize &s)
866 { setMinimumSize(s.width(),s.height()); }
867 
868 inline void QWidget::setMaximumSize(const QSize &s)
869 { setMaximumSize(s.width(),s.height()); }
870 
871 inline void QWidget::setSizeIncrement(const QSize &s)
872 { setSizeIncrement(s.width(),s.height()); }
873 
874 inline void QWidget::setBaseSize(const QSize &s)
875 { setBaseSize(s.width(),s.height()); }
876 
877 inline const QFont &QWidget::font() const
878 { return data->fnt; }
879 
881 { return QFontMetrics(data->fnt); }
882 
884 { return QFontInfo(data->fnt); }
885 
888 
889 inline bool QWidget::hasMouseTracking() const
890 { return testAttribute(Qt::WA_MouseTracking); }
891 
892 inline bool QWidget::underMouse() const
893 { return testAttribute(Qt::WA_UnderMouse); }
894 
897 
898 inline bool QWidget::hasTabletTracking() const
899 { return testAttribute(Qt::WA_TabletTracking); }
900 
901 inline bool QWidget::updatesEnabled() const
902 { return !testAttribute(Qt::WA_UpdatesDisabled); }
903 
904 inline void QWidget::update(int ax, int ay, int aw, int ah)
905 { update(QRect(ax, ay, aw, ah)); }
906 
907 inline bool QWidget::isVisible() const
908 { return testAttribute(Qt::WA_WState_Visible); }
909 
910 inline bool QWidget::isHidden() const
911 { return testAttribute(Qt::WA_WState_Hidden); }
912 
913 inline void QWidget::move(int ax, int ay)
914 { move(QPoint(ax, ay)); }
915 
916 inline void QWidget::resize(int w, int h)
917 { resize(QSize(w, h)); }
918 
919 inline void QWidget::setGeometry(int ax, int ay, int aw, int ah)
920 { setGeometry(QRect(ax, ay, aw, ah)); }
921 
922 inline QRect QWidget::rect() const
923 { return QRect(0,0,data->crect.width(),data->crect.height()); }
924 
925 inline const QRect &QWidget::geometry() const
926 { return data->crect; }
927 
928 inline QSize QWidget::size() const
929 { return data->crect.size(); }
930 
931 inline int QWidget::width() const
932 { return data->crect.width(); }
933 
934 inline int QWidget::height() const
935 { return data->crect.height(); }
936 
938 { return static_cast<QWidget *>(QObject::parent()); }
939 
941 { setSizePolicy(QSizePolicy(hor, ver)); }
942 
944 {
945  if (attribute < int(8*sizeof(uint)))
946  return data->widget_attributes & (1<<attribute);
947  return testAttribute_helper(attribute);
948 }
949 
950 
951 #define QWIDGETSIZE_MAX ((1<<24)-1)
952 
953 #ifndef QT_NO_DEBUG_STREAM
954 Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QWidget *);
955 #endif
956 
958 
959 #endif // QWIDGET_H
Arabic default style
Definition: afstyles.h:94
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
void triggered(bool checked=false)
The QBackingStore class provides a drawing area for QWindow.
Definition: qbackingstore.h:60
The QBitmap class provides monochrome (1-bit depth) pixmaps.
Definition: qbitmap.h:52
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:85
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
The QCursor class provides a mouse cursor with an arbitrary shape.
Definition: qcursor.h:81
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
The QEvent class is the base class of all event classes. Event objects contain event parameters.
Definition: qcoreevent.h:58
The QFocusEvent class contains event parameters for widget focus events. \inmodule QtGui.
Definition: qevent.h:520
The QFont class specifies a query for a font used for drawing text.
Definition: qfont.h:56
The QFontInfo class provides general information about fonts. \inmodule QtGui.
Definition: qfontinfo.h:51
The QFontMetrics class provides font metrics information.
Definition: qfontmetrics.h:56
The QGraphicsEffect class is the base class for all graphics effects.
The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene.
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
The QIcon class provides scalable icons in different modes and states.
Definition: qicon.h:56
The QInputMethodEvent class provides parameters for input method events. \inmodule QtGui.
Definition: qevent.h:696
The QKeyEvent class describes a key event.
Definition: qevent.h:471
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition: qkeysequence.h:71
The QLayout class is the base class of geometry managers.
Definition: qlayout.h:62
The QMargins class defines the four margins of a rectangle.
Definition: qmargins.h:52
The QMouseEvent class contains parameters that describe a mouse event.
Definition: qevent.h:231
The QMoveEvent class contains event parameters for move events. \inmodule QtGui.
Definition: qevent.h:558
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
QObject * parent() const
Definition: qobject.h:409
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Definition: qobject.cpp:2772
virtual bool event(QEvent *event)
Definition: qobject.cpp:1329
void setParent(QObject *parent)
Definition: qobject.cpp:2108
virtual QPaintEngine * paintEngine() const =0
virtual void initPainter(QPainter *painter) const
virtual QPaintDevice * redirected(QPoint *offset) const
virtual QPainter * sharedPainter() const
virtual int metric(PaintDeviceMetric metric) const
The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a g...
Definition: qpaintengine.h:87
The QPaintEvent class contains event parameters for paint events. \inmodule QtGui.
Definition: qevent.h:539
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:82
The QPalette class contains color groups for each widget state.
Definition: qpalette.h:55
The QPixmap class is an off-screen image representation that can be used as a paint device.
Definition: qpixmap.h:63
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
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
The QScreen class is used to query screen properties. \inmodule QtGui.
Definition: qscreen.h:68
The QShowEvent class provides an event that is sent when a widget is shown.
Definition: qevent.h:647
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:55
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.
Definition: qsizepolicy.h:54
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QStyle class is an abstract base class that encapsulates the look and feel of a GUI.
Definition: qstyle.h:65
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:95
uint is_closing
Definition: qwidget.h:116
QPalette pal
Definition: qwidget.h:125
uint focus_policy
Definition: qwidget.h:114
uint in_show
Definition: qwidget.h:117
uint unused
Definition: qwidget.h:123
uint fstrut_dirty
Definition: qwidget.h:119
QRect wrect
Definition: qwidget.h:127
QRect crect
Definition: qwidget.h:124
uint in_destructor
Definition: qwidget.h:122
uint sizehint_forced
Definition: qwidget.h:115
uint in_set_window_state
Definition: qwidget.h:118
Qt::WindowFlags window_flags
Definition: qwidget.h:112
QFont fnt
Definition: qwidget.h:126
uint window_modality
Definition: qwidget.h:121
uint window_state
Definition: qwidget.h:113
WId winid
Definition: qwidget.h:110
uint context_menu_policy
Definition: qwidget.h:120
uint widget_attributes
Definition: qwidget.h:111
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:133
friend class QPainter
Definition: qwidget.h:776
QWidget(QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f)
void resize(const QSize &)
friend class QWidgetItem
Definition: qwidget.h:782
void setGeometry(int x, int y, int w, int h)
Definition: qwidget.h:919
bool hasTabletTracking() const
Definition: qwidget.h:898
Qt::WindowFlags windowFlags() const
Definition: qwidget.h:836
QPointF mapFromParent(const QPointF &) const
void move(const QPoint &)
void setMinimumSize(const QSize &)
Definition: qwidget.h:865
void setMask(const QBitmap &)
QWidget * topLevelWidget() const
Definition: qwidget.h:343
void grabMouse(const QCursor &)
friend class QShortcutPrivate
Definition: qwidget.h:786
friend class QGestureManager
Definition: qwidget.h:797
void setSizePolicy(QSizePolicy)
void setTabletTracking(bool enable)
Definition: qwidget.h:895
friend class QWidgetItemV2
Definition: qwidget.h:783
int minimumHeight
the widget's minimum height in pixels
Definition: qwidget.h:159
bool isHidden() const
Definition: qwidget.h:910
bool focusPreviousChild()
Definition: qwidget.h:758
QSize size
the size of the widget excluding any window frame
Definition: qwidget.h:147
QPointF mapToGlobal(const QPointF &) const
QPoint mapFromGlobal(const QPoint &) const
QRect geometry
the geometry of the widget relative to its parent and excluding the window frame
Definition: qwidget.h:140
QAction * addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
bool hasMouseTracking() const
Definition: qwidget.h:889
QPoint mapFrom(const QWidget *, const QPoint &) const
int width
the width of the widget excluding any window frame
Definition: qwidget.h:148
RenderFlag
Definition: qwidget.h:237
friend class QPainterPrivate
Definition: qwidget.h:777
void setMouseTracking(bool enable)
Definition: qwidget.h:886
QWidget * childAt(int x, int y) const
Definition: qwidget.h:831
void windowIconTextChanged(const QString &iconText)
void render(QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
friend class QWidgetEffectSourcePrivate
Definition: qwidget.h:800
friend class QBackingStoreDevice
Definition: qwidget.h:769
friend class QAccessibleTabButton
Definition: qwidget.h:795
friend class QStyleSheetStyle
Definition: qwidget.h:790
QPoint mapFromParent(const QPoint &) const
friend class QGuiApplication
Definition: qwidget.h:773
friend class QAccessibleWidget
Definition: qwidget.h:793
void move(int x, int y)
Definition: qwidget.h:913
QFontMetrics fontMetrics() const
Definition: qwidget.h:880
friend class QX11PaintEngine
Definition: qwidget.h:784
friend class QApplicationPrivate
Definition: qwidget.h:772
bool isModal() const
Definition: qwidget.h:850
bool updatesEnabled
whether updates are enabled
Definition: qwidget.h:177
void repaint(const QRect &)
bool isLeftToRight() const
Definition: qwidget.h:451
void update(const QRegion &)
friend class QGuiApplicationPrivate
Definition: qwidget.h:774
int minimumWidth
the widget's minimum width in pixels
Definition: qwidget.h:157
void setMask(const QRegion &)
int maximumHeight
the widget's maximum height in pixels
Definition: qwidget.h:163
QPoint mapTo(const QWidget *, const QPoint &) const
int height
the height of the widget excluding any window frame
Definition: qwidget.h:149
friend class QBaseApplication
Definition: qwidget.h:775
QRect rect
the internal geometry of the widget excluding any window frame
Definition: qwidget.h:150
void setFocus()
Definition: qwidget.h:454
friend class QWin32PaintEngine
Definition: qwidget.h:785
friend class QFontInfo
Definition: qwidget.h:780
void setMaximumSize(const QSize &)
Definition: qwidget.h:868
friend class QApplication
Definition: qwidget.h:771
friend class QWinNativePanGestureRecognizer
Definition: qwidget.h:798
bool isEnabled() const
Definition: qwidget.h:847
void update()
Definition: qwidget.cpp:10977
QAction * addAction(const QString &text, Args &&...args)
Definition: qwidget.h:604
void scroll(int dx, int dy, const QRect &)
QPoint mapToGlobal(const QPoint &) const
friend class QPixmap
Definition: qwidget.h:778
QPoint mapToParent(const QPoint &) const
void windowIconChanged(const QIcon &icon)
friend class QFontMetrics
Definition: qwidget.h:779
void setSizeIncrement(const QSize &)
Definition: qwidget.h:871
bool isRightToLeft() const
Definition: qwidget.h:450
QPointF mapFrom(const QWidget *, const QPointF &) const
bool focusNextChild()
Definition: qwidget.h:757
friend struct QWidgetExceptionCleaner
Definition: qwidget.h:791
friend class QDataWidgetMapperPrivate
Definition: qwidget.h:755
int maximumWidth
the widget's maximum width in pixels
Definition: qwidget.h:161
QFont font
the font currently set for the widget
Definition: qwidget.h:167
void customContextMenuRequested(const QPoint &pos)
friend class QWidgetWindow
Definition: qwidget.h:792
friend class QGraphicsProxyWidget
Definition: qwidget.h:788
void resize(int w, int h)
Definition: qwidget.h:916
void render(QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
QAction * addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
friend class QLayout
Definition: qwidget.h:781
void setGeometry(const QRect &)
friend class QAccessibleTable
Definition: qwidget.h:794
friend class QWidgetRepaintManager
Definition: qwidget.h:770
QFontInfo fontInfo() const
Definition: qwidget.h:883
QAction * addAction(const QIcon &icon, const QString &text, Args &&...args)
Definition: qwidget.h:611
bool underMouse() const
Definition: qwidget.h:892
QWidget * parentWidget() const
Definition: qwidget.h:937
void setBaseSize(const QSize &)
Definition: qwidget.h:874
QPointF mapTo(const QWidget *, const QPointF &) const
bool isWindow() const
Definition: qwidget.h:844
void repaint(const QRegion &)
QPointF mapToParent(const QPointF &) const
void setFixedSize(const QSize &)
bool isVisible() const
Definition: qwidget.h:907
QPointF mapFromGlobal(const QPointF &) const
Qt::WindowType windowType() const
Definition: qwidget.h:834
bool testAttribute(Qt::WidgetAttribute) const
Definition: qwidget.h:943
friend class QGraphicsProxyWidgetPrivate
Definition: qwidget.h:789
friend class QWindowSurface
Definition: qwidget.h:787
void update(const QRect &)
void windowTitleChanged(const QString &title)
The QWindow class represents a window in the underlying windowing system.
Definition: qwindow.h:99
QOpenGLWidget * widget
[1]
a resize(100000)
bool focus
[0]
QCursor cursor
rect
[4]
direction
fontMetrics
palette
else opt state
[0]
qApp setStyleSheet("QPushButton { color: white }")
[21]
auto it unsigned count const
Definition: hb-iter.hh:848
@ STORED
Definition: infutil.h:17
short next
Definition: keywords.cpp:454
#define inline
Definition: md4c.c:45
Definition: qnamespace.h:55
InputMethodQuery
Definition: qnamespace.h:1380
@ ImQueryAll
Definition: qnamespace.h:1403
WidgetAttribute
Definition: qnamespace.h:307
@ WA_UnderMouse
Definition: qnamespace.h:309
@ WA_Disabled
Definition: qnamespace.h:308
@ WA_TabletTracking
Definition: qnamespace.h:438
@ WA_WState_Hidden
Definition: qnamespace.h:322
@ WA_WState_Visible
Definition: qnamespace.h:321
@ WA_UpdatesDisabled
Definition: qnamespace.h:317
@ WA_MouseTracking
Definition: qnamespace.h:310
WindowModality
Definition: qnamespace.h:1563
@ NonModal
Definition: qnamespace.h:1564
LayoutDirection
Definition: qnamespace.h:1462
@ LeftToRight
Definition: qnamespace.h:1463
@ RightToLeft
Definition: qnamespace.h:1464
FocusPolicy
Definition: qnamespace.h:131
ConnectionType
Definition: qnamespace.h:1304
@ AutoConnection
Definition: qnamespace.h:1305
GestureType
Definition: qnamespace.h:1641
WindowType
Definition: qnamespace.h:230
@ WindowType_Mask
Definition: qnamespace.h:245
@ Window
Definition: qnamespace.h:232
ContextMenuPolicy
Definition: qnamespace.h:1372
FocusReason
Definition: qnamespace.h:1360
@ OtherFocusReason
Definition: qnamespace.h:1368
ShortcutContext
Definition: qnamespace.h:1313
@ WindowShortcut
Definition: qnamespace.h:1315
action
Definition: devices.py:78
const char * sizePolicy(int v)
Definition: language.cpp:146
EGLOutputLayerEXT EGLint attribute
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition: qflags.h:210
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition: qflags.h:227
QT_END_INCLUDE_NAMESPACE typedef double qreal
Definition: qglobal.h:341
unsigned int uint
Definition: qglobal.h:334
#define Q_DISABLE_COPY(Class)
Definition: qglobal.h:515
ptrdiff_t qintptr
Definition: qglobal.h:309
#define QT_DEPRECATED_VERSION_X_6_1(text)
Definition: qglobal.h:452
@ text
GLenum type
Definition: qopengl.h:270
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: qopengl.h:270
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLint level
GLuint64 key
GLfloat GLfloat GLfloat w
[0]
GLint GLsizei GLsizei height
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLdouble GLdouble GLdouble GLdouble top
GLdouble GLdouble right
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLfloat GLfloat f
GLint GLsizei width
GLint left
GLint GLint bottom
GLenum target
GLbitfield flags
GLboolean enable
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
GLuint name
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLint y
GLfloat GLfloat GLfloat GLfloat h
struct _cl_event * event
Definition: qopenglext.h:2998
GLenum query
Definition: qopenglext.h:2738
GLuint64EXT * result
[6]
Definition: qopenglext.h:10932
GLdouble s
[6]
Definition: qopenglext.h:235
GLfloat GLfloat p
[1]
Definition: qopenglext.h:12698
#define Q_PROPERTY(...)
Definition: qtmetamacros.h:92
#define Q_OBJECT
Definition: qtmetamacros.h:158
#define Q_INVOKABLE
Definition: qtmetamacros.h:112
#define Q_SLOTS
Definition: qtmetamacros.h:80
#define QDOC_PROPERTY(text)
Definition: qtmetamacros.h:98
#define Q_PRIVATE_SLOT(d, signature)
Definition: qtmetamacros.h:82
#define Q_SIGNALS
Definition: qtmetamacros.h:81
Q_WIDGETS_EXPORT QWidgetData * qt_qwidget_data(QWidget *widget)
Definition: qwidget.cpp:12211
Q_WIDGETS_EXPORT QWidgetPrivate * qt_widget_private(QWidget *widget)
Definition: qwidget.cpp:12216
Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QWidget *)
Definition: qwidget.cpp:13014
QWidget * qobject_cast< QWidget * >(QObject *o)
Definition: qwidget.h:819
const QWidget * qobject_cast< const QWidget * >(const QObject *o)
Definition: qwidget.h:824
#define explicit
view show()
[18] //! [19]
HB_EXTERN hb_font_get_glyph_func_t void hb_destroy_func_t destroy
QScreen * screen
[1]
Definition: main.cpp:76
QIcon icon
[15]
QVBoxLayout * layout
QString title
[35]
QGraphicsOpacityEffect * effect
form setLayout(layout)
item setCursor(Qt::IBeamCursor)
[1]
edit hide()
edit isVisible()
setTabOrder(a, b)
[0]
app setAttribute(Qt::AA_DontShowIconsInMenus)
QLayoutItem * child
[0]
setUpdatesEnabled(false)
[12]
w setWindowState(w->windowState() ^ Qt::WindowFullScreen)
[0]
myWidget restoreGeometry(settings.value("myWidget/geometry").toByteArray())
QPainter painter(this)
[7]
setFont(font)
aWidget window() -> setWindowTitle("New Window Title")
[2]
widget setStyle(proxy)
scrollArea setBackgroundRole(QPalette::Dark)
QSizePolicy policy
widget setSizePolicy(policy)
backaction setToolTip(browser.historyTitle(-1))
[0]
view create()
Definition: main.cpp:58
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent
QDomElement find(const QString &tagName, const QDomElement &e)
Definition: main.cpp:39