QtBase  v6.3.1
controllerwidget.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2021 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the test suite of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
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 General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21 ** included in the packaging of this file. Please review the following
22 ** information to ensure the GNU General Public License requirements will
23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24 **
25 ** $QT_END_LICENSE$
26 **
27 ****************************************************************************/
28 
29 #include "controllerwidget.h"
30 #include <controls.h>
31 
32 #include <QtWidgets>
33 
34 #include <QBackingStore>
35 #include <QPaintDevice>
36 #include <QPainter>
37 #include <QResizeEvent>
38 #include <QWindow>
39 
40 CoordinateControl::CoordinateControl(const QString &sep) : m_x(new QSpinBox), m_y(new QSpinBox)
41 {
42  m_x->setMinimum(0);
43  m_x->setMaximum(2000);
44  connect(m_x, SIGNAL(valueChanged(int)), this, SLOT(spinBoxChanged()));
45  m_y->setMinimum(0);
46  m_y->setMaximum(2000);
47  connect(m_y, SIGNAL(valueChanged(int)), this, SLOT(spinBoxChanged()));
48  QHBoxLayout *l = new QHBoxLayout(this);
49  l->setSpacing(2);
50  l->addWidget(m_x);
51  l->addWidget(new QLabel(sep));
52  l->addWidget(m_y);
53 }
54 
55 void CoordinateControl::setCoordinates(int x, int y)
56 {
57  m_x->blockSignals(true);
58  m_y->blockSignals(true);
59  m_x->setValue(x);
60  m_y->setValue(y);
61  m_x->blockSignals(false);
62  m_y->blockSignals(false);
63 }
64 
65 QPair<int, int> CoordinateControl::coordinates() const
66 {
67  return QPair<int, int>(m_x->value(), m_y->value());
68 }
69 
70 void CoordinateControl::spinBoxChanged()
71 {
72  const int x = m_x->value();
73  const int y = m_y->value();
76 }
77 
79  : m_point(new CoordinateControl(QLatin1String("+")))
80  , m_size(new CoordinateControl(QLatin1String("x")))
81 {
82  QHBoxLayout *l = new QHBoxLayout(this);
83  l->setSpacing(0);
84  l->setContentsMargins(ControlLayoutMargin, ControlLayoutMargin,
86  connect(m_point, SIGNAL(pointValueChanged(QPoint)), this, SLOT(handleChanged()));
87  connect(m_point, SIGNAL(pointValueChanged(QPoint)), this, SIGNAL(positionChanged(QPoint)));
88  l->addWidget(m_point);
90  connect(m_size, SIGNAL(sizeValueChanged(QSize)), this, SLOT(handleChanged()));
91  connect(m_size, SIGNAL(sizeValueChanged(QSize)), this, SIGNAL(sizeChanged(QSize)));
92  l->addWidget(m_size);
93 }
94 
96 {
97  m_point->setPointValue(r.topLeft());
98  m_size->setSizeValue(r.size());
99 }
100 
102 {
103  return QRect(m_point->pointValue(), m_size->sizeValue());
104 }
105 
106 void RectControl::handleChanged()
107 {
109 }
110 
112  : m_layout(new QGridLayout(this))
113  , m_object(w)
114  , m_geometry(new RectControl)
115  , m_framePosition(new CoordinateControl(QLatin1String("x")))
116  , m_typeControl(new TypeControl)
117  , m_hintControl(new HintControl)
118  , m_moveEventLabel(new QLabel(tr("Move events")))
119  , m_resizeEventLabel(new QLabel(tr("Resize events")))
120  , m_mouseEventLabel(new QLabel(tr("Mouse events")))
121  , m_moveCount(0)
122  , m_resizeCount(0)
123 {
124  m_object->installEventFilter(this);
125  m_geometry->setTitle(tr("Geometry"));
126  int row = 0;
127  m_layout->addWidget(m_geometry, row, 0, 1, 2);
128  m_layout->setContentsMargins(ControlLayoutMargin, ControlLayoutMargin,
130  QGroupBox *frameGB = new QGroupBox(tr("Frame"));
131  QVBoxLayout *frameL = new QVBoxLayout(frameGB);
132  frameL->setSpacing(0);
135  frameL->addWidget(m_framePosition);
136  m_layout->addWidget(frameGB, row, 2);
137 
138  m_layout->addWidget(m_hintControl, ++row, 0, 1, 2);
139  connect(m_hintControl, SIGNAL(changed(Qt::WindowFlags)), this, SLOT(windowFlagsChanged()));
140  m_layout->addWidget(m_typeControl, row, 2);
141  connect(m_typeControl, SIGNAL(changed(Qt::WindowFlags)), this, SLOT(windowFlagsChanged()));
142 
143  QGroupBox *eventGroupBox = new QGroupBox(tr("Events"));
144  QVBoxLayout *l = new QVBoxLayout(eventGroupBox);
145  l->setSpacing(0);
146  l->setContentsMargins(ControlLayoutMargin, ControlLayoutMargin,
148  l->addWidget(m_moveEventLabel);
149  l->addWidget(m_resizeEventLabel);
150  l->addWidget(m_mouseEventLabel);
151  m_layout->addWidget(eventGroupBox, ++row, 2);
152 
153  connect(m_geometry, SIGNAL(positionChanged(QPoint)), this, SLOT(posChanged(QPoint)));
154  connect(m_geometry, SIGNAL(sizeChanged(QSize)), this, SLOT(sizeChanged(QSize)));
155  connect(m_framePosition, SIGNAL(pointValueChanged(QPoint)), this, SLOT(framePosChanged(QPoint)));
156 }
157 
159 {
160  switch (e->type()) {
161  case QEvent::Resize: {
162  const QResizeEvent *re = static_cast<const QResizeEvent *>(e);
163  m_resizeEventLabel->setText(tr("Resize %1x%2 (#%3)")
164  .arg(re->size().width()).arg(re->size().height())
165  .arg(++m_resizeCount));
166  refresh();
167  }
168  break;
169  case QEvent::Move: {
170  const QMoveEvent *me = static_cast<const QMoveEvent *>(e);
171  m_moveEventLabel->setText(tr("Move %1,%2 (#%3)")
172  .arg(me->pos().x()).arg(me->pos().y())
173  .arg(++m_moveCount));
174  refresh();
175  }
176  break;
177  case QEvent::MouseMove: {
178  const QMouseEvent *me = static_cast<const QMouseEvent *>(e);
179  const QPoint pos = me->pos();
180  QPoint globalPos = objectMapToGlobal(m_object, pos);
181  m_mouseEventLabel->setText(tr("Mouse: %1,%2 Global: %3,%4 ").
182  arg(pos.x()).arg(pos.y()).arg(globalPos.x()).arg(globalPos.y()));
183  }
184  break;
186  refresh();
187  default:
188  break;
189  }
190  return false;
191 }
192 
193 void BaseWindowControl::posChanged(const QPoint &p)
194 {
195  QRect geom = objectGeometry(m_object);
196  geom.moveTopLeft(p);
197  setObjectGeometry(m_object, geom);
198 }
199 
200 void BaseWindowControl::sizeChanged(const QSize &s)
201 {
202  QRect geom = objectGeometry(m_object);
203  geom.setSize(s);
204  setObjectGeometry(m_object, geom);
205 }
206 
207 void BaseWindowControl::framePosChanged(const QPoint &p)
208 {
209  setObjectFramePosition(m_object, p);
210 }
211 
212 void BaseWindowControl::windowFlagsChanged()
213 {
214  const Qt::WindowFlags f = m_typeControl->type() | m_hintControl->hints();
215  setObjectWindowFlags(m_object, f);
216 }
217 
219 {
220  m_geometry->setRectValue(objectGeometry(m_object));
221  m_framePosition->setPointValue(objectFramePosition(m_object));
222  const Qt::WindowFlags flags = objectWindowFlags(m_object);
223  m_typeControl->setType(flags);
224  m_hintControl->setHints(flags);
225 }
226 
227 // A control for a QWidget
229 {
230  Q_OBJECT
231 public:
233 
234  virtual void refresh();
235 
236 private slots:
237  void statesChanged();
238 
239 private:
240  virtual QRect objectGeometry(const QObject *o) const
241  { return static_cast<const QWidget *>(o)->geometry(); }
242  virtual void setObjectGeometry(QObject *o, const QRect &r) const
243  { static_cast<QWidget *>(o)->setGeometry(r); }
244  virtual QPoint objectFramePosition(const QObject *o) const
245  { return static_cast<const QWidget *>(o)->pos(); }
246  virtual void setObjectFramePosition(QObject *o, const QPoint &p) const
247  { static_cast<QWidget *>(o)->move(p); }
248  virtual QPoint objectMapToGlobal(const QObject *o, const QPoint &p) const
249  { return static_cast<const QWidget *>(o)->mapToGlobal(p); }
250  virtual Qt::WindowFlags objectWindowFlags(const QObject *o) const
251  { return static_cast<const QWidget *>(o)->windowFlags(); }
252  virtual void setObjectWindowFlags(QObject *o, Qt::WindowFlags f);
253 
254  WindowStatesControl *m_statesControl;
255 };
256 
259  , m_statesControl(new WindowStatesControl)
260 {
261  setTitle(w->windowTitle());
262  m_layout->addWidget(m_statesControl, 2, 0);
263  connect(m_statesControl, SIGNAL(changed()), this, SLOT(statesChanged()));
264 }
265 
266 void WidgetWindowControl::setObjectWindowFlags(QObject *o, Qt::WindowFlags f)
267 {
268  QWidget *w = static_cast<QWidget *>(o);
269  const bool visible = w->isVisible();
270  w->setWindowFlags(f); // hides.
271  if (visible)
272  w->show();
273 }
274 
276 {
277  const QWidget *w = static_cast<const QWidget *>(m_object);
278  m_statesControl->setVisibleValue(w->isVisible());
279  m_statesControl->setStates(w->windowState());
281 }
282 
283 void WidgetWindowControl::statesChanged()
284 {
285  QWidget *w = static_cast<QWidget *>(m_object);
286  w->setVisible(m_statesControl->visibleValue());
287  w->setWindowState(m_statesControl->states());
288 }
289 
290 // Test window drawing diagonal lines
291 class Window : public QWindow
292 {
293 public:
294  explicit Window(QWindow *parent = nullptr)
295  : QWindow(parent)
296  , m_backingStore(new QBackingStore(this))
297  {
298  setObjectName(QStringLiteral("window"));
299  setTitle(tr("TestWindow"));
300  }
301 
302 protected:
304  { render(); }
305 
306 private:
307  QBackingStore *m_backingStore;
308  void render();
309 };
310 
311 void Window::render()
312 {
313  QRect rect(QPoint(), geometry().size());
314  m_backingStore->resize(rect.size());
315  m_backingStore->beginPaint(rect);
316  if (!rect.size().isEmpty()) {
317  QPaintDevice *device = m_backingStore->paintDevice();
318  QPainter p(device);
319  p.fillRect(rect, Qt::white);
320  p.drawLine(0, 0, rect.width(), rect.height());
321  p.drawLine(0, rect.height(), rect.width(), 0);
322  }
323  m_backingStore->endPaint();
324  m_backingStore->flush(rect);
325 }
326 
327 // A control for a QWindow
328 class WindowControl : public BaseWindowControl
329 {
330  Q_OBJECT
331 public:
332  explicit WindowControl(QWindow *w);
333 
334  virtual void refresh();
335 
336 private slots:
337  void stateChanged();
338 
339 private:
340  virtual QRect objectGeometry(const QObject *o) const
341  { return static_cast<const QWindow *>(o)->geometry(); }
342  virtual void setObjectGeometry(QObject *o, const QRect &r) const
343  { static_cast<QWindow *>(o)->setGeometry(r); }
344  virtual QPoint objectFramePosition(const QObject *o) const
345  { return static_cast<const QWindow *>(o)->framePosition(); }
346  virtual void setObjectFramePosition(QObject *o, const QPoint &p) const
347  { static_cast<QWindow *>(o)->setFramePosition(p); }
348  virtual QPoint objectMapToGlobal(const QObject *o, const QPoint &p) const
349  { return static_cast<const QWindow *>(o)->mapToGlobal(p); }
350  virtual Qt::WindowFlags objectWindowFlags(const QObject *o) const
351  { return static_cast<const QWindow *>(o)->flags(); }
352  virtual void setObjectWindowFlags(QObject *o, Qt::WindowFlags f)
353  { static_cast<QWindow *>(o)->setFlags(f); }
354 
355  WindowStatesControl *m_statesControl;
356 };
357 
360  , m_statesControl(new WindowStatesControl)
361 {
362  setTitle(w->title());
363  QGroupBox *stateGroupBox = new QGroupBox(tr("State"));
364  QVBoxLayout *l = new QVBoxLayout(stateGroupBox);
365  l->addWidget(m_statesControl);
366  m_layout->addWidget(stateGroupBox, 2, 0);
367  connect(m_statesControl, SIGNAL(changed()), this, SLOT(stateChanged()));
368 }
369 
371 {
372  const QWindow *w = static_cast<const QWindow *>(m_object);
374  m_statesControl->setVisibleValue(w->isVisible());
375  m_statesControl->setStates(w->windowStates());
376 }
377 
378 void WindowControl::stateChanged()
379 {
380  QWindow *w = static_cast<QWindow *>(m_object);
381  w->setVisible(m_statesControl->visibleValue());
382  w->setWindowStates(m_statesControl->states());
383 }
384 
387  , m_testWidget(new QWidget)
388  , m_testWindow(new Window)
389 {
390  QMenu *fileMenu = menuBar()->addMenu(tr("File"));
391  QAction *exitAction = fileMenu->addAction(tr("Exit"));
392  exitAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q));
393  connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
394 
395  QString title = QLatin1String("Geometry test, (Qt ");
396  title += QLatin1String(QT_VERSION_STR);
397  title += QLatin1String(", ");
398  title += qApp->platformName();
399  title += QLatin1Char(')');
401 
402  int x = 100;
403  int y = 100;
405  const int offsetArgIndex = args.indexOf(QLatin1String("-offset"));
406  if (offsetArgIndex >=0 && offsetArgIndex < args.size() - 1) {
407  y += args.at(offsetArgIndex + 1).toInt();
408  }
409 
410  move(x, y);
411 
412  x += 800;
413  m_testWidget->setWindowTitle(tr("TestWidget"));
414  if (args.contains(QLatin1String("-layout"))) {
415  QVBoxLayout *layout = new QVBoxLayout(m_testWidget.data());
416  QLabel *label = new QLabel("Hallo");
418  }
419  m_testWidget->move(x, y);
420  m_testWidget->resize(200, 200);
421 
422  if (args.contains(QLatin1String("-widgetminimized"), Qt::CaseInsensitive))
423  m_testWidget->showMinimized();
424  else if (args.contains(QLatin1String("-widgetmaximized"), Qt::CaseInsensitive))
425  m_testWidget->showMaximized();
426  else if (args.contains(QLatin1String("-widgetfullscreen"), Qt::CaseInsensitive))
427  m_testWidget->showFullScreen();
428  else
429  m_testWidget->show();
430 
431  x += 300;
435  m_testWindow->setFramePosition(QPoint(x, y));
436  m_testWindow->resize(200, 200);
437  if (args.contains(QLatin1String("-windowminimized"), Qt::CaseInsensitive))
438  m_testWindow->showMinimized();
439  else if (args.contains(QLatin1String("-windowmaximized"), Qt::CaseInsensitive))
440  m_testWindow->showMaximized();
441  else if (args.contains(QLatin1String("-windowfullscreen"), Qt::CaseInsensitive))
442  m_testWindow->showFullScreen();
443  else
444  m_testWindow->show();
445  m_testWindow->setTitle(tr("TestWindow"));
446 
447  QWidget *central = new QWidget ;
448  QVBoxLayout *l = new QVBoxLayout(central);
449 
450  const QString labelText = tr(
451  "<html><head/><body><p>This example lets you control the geometry"
452  " of a QWidget and a QWindow (Qt 5) for testing out"
453  " QPA plugins.</p>"
454  "<p>It compiles with Qt 4 and Qt 5 for comparison.</p>"
455  "<p>The command line option <code>-offset &lt;value&gt;</code> specifies"
456  " a vertical offset.</p></body></html>");
457 
458  l->addWidget(new QLabel(labelText));
459 
460  BaseWindowControl *widgetControl = new WidgetWindowControl(m_testWidget.data());
461  widgetControl->refresh();
462  l->addWidget(widgetControl);
463 
464  BaseWindowControl *windowControl = new WindowControl(m_testWindow.data());
465  windowControl->refresh();
466  l->addWidget(windowControl);
467 
468  setCentralWidget(central);
469 }
470 
472 {
473 }
474 
475 #include "controllerwidget.moc"
QGridLayout * m_layout
virtual void refresh()
virtual bool eventFilter(QObject *, QEvent *)
BaseWindowControl(QObject *w)
ControllerWidget(QWidget *parent=nullptr)
CoordinateControl(const QString &sep)
void sizeValueChanged(const QSize &s)
void pointValueChanged(const QPoint &p)
QPoint pointValue() const
QSize sizeValue() const
void setPointValue(const QPoint &p)
void setSizeValue(const QSize &s)
void setHints(Qt::WindowFlags hints)
Definition: controls.cpp:130
Qt::WindowFlags hints() const
Definition: controls.cpp:94
The QAction class provides an abstraction for user commands that can be added to different user inter...
Definition: qaction.h:65
The QBackingStore class provides a drawing area for QWindow.
Definition: qbackingstore.h:60
QPaintDevice * paintDevice()
void beginPaint(const QRegion &)
void flush(const QRegion &region, QWindow *window=nullptr, const QPoint &offset=QPoint())
void resize(const QSize &size)
void addWidget(QWidget *, int stretch=0, Qt::Alignment alignment=Qt::Alignment())
void setSpacing(int spacing) override
Definition: qboxlayout.cpp:605
static QStringList arguments()
The QEvent class is the base class of all event classes. Event objects contain event parameters.
Definition: qcoreevent.h:58
@ WindowStateChange
Definition: qcoreevent.h:156
@ MouseMove
Definition: qcoreevent.h:76
@ Resize
Definition: qcoreevent.h:86
@ Move
Definition: qcoreevent.h:85
The QExposeEvent class contains event parameters for expose events. \inmodule QtGui.
Definition: qevent.h:574
QGraphicsObject * parent
the parent of the item
QRectF geometry
the geometry of the widget
QSizeF size
the size of the widget
The QGridLayout class lays out widgets in a grid.
Definition: qgridlayout.h:57
void addWidget(QWidget *w)
Definition: qgridlayout.h:100
The QGroupBox widget provides a group box frame with a title.
Definition: qgroupbox.h:53
QString title
the group box title text
Definition: qgroupbox.h:56
QGroupBox(QWidget *parent=nullptr)
Definition: qgroupbox.cpp:180
void setTitle(const QString &title)
Definition: qgroupbox.cpp:223
The QHBoxLayout class lines up widgets horizontally.
Definition: qboxlayout.h:114
The QKeySequence class encapsulates a key sequence as used by shortcuts.
Definition: qkeysequence.h:71
The QLabel widget provides a text or image display.
Definition: qlabel.h:56
void setText(const QString &)
Definition: qlabel.cpp:297
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal.
Definition: qstring.h:84
void addWidget(QWidget *w)
Definition: qlayout.cpp:223
void setContentsMargins(int left, int top, int right, int bottom)
Definition: qlayout.cpp:325
The QMainWindow class provides a main application window.\inmodule QtWidgets.
Definition: qmainwindow.h:61
QAction * addMenu(QMenu *menu)
Definition: qmenubar.cpp:789
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus.
Definition: qmenu.h:62
void addAction(QAction *action)
Definition: qwidget.cpp:3129
The QMouseEvent class contains parameters that describe a mouse event.
Definition: qevent.h:231
QPoint pos() const
Definition: qevent.h:254
The QMoveEvent class contains event parameters for move events. \inmodule QtGui.
Definition: qevent.h:558
const QPoint & pos() const
Definition: qevent.h:566
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Definition: qobject.cpp:2772
friend class QWidget
Definition: qobject.h:445
bool blockSignals(bool b) noexcept
Definition: qobject.cpp:1514
void setObjectName(const QString &name)
Definition: qobject.cpp:1261
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:82
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:52
constexpr int x() const noexcept
Definition: qpoint.h:155
constexpr int y() const noexcept
Definition: qpoint.h:160
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:59
constexpr void moveTopLeft(const QPoint &p) noexcept
Definition: qrect.h:331
constexpr int height() const noexcept
Definition: qrect.h:266
constexpr void setSize(const QSize &s) noexcept
Definition: qrect.h:414
constexpr QSize size() const noexcept
Definition: qrect.h:269
constexpr int width() const noexcept
Definition: qrect.h:263
The QResizeEvent class contains event parameters for resize events. \inmodule QtGui.
Definition: qevent.h:612
const QSize & size() const
Definition: qevent.h:620
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:55
constexpr int height() const noexcept
Definition: qsize.h:160
constexpr int width() const noexcept
Definition: qsize.h:157
constexpr bool isEmpty() const noexcept
Definition: qsize.h:151
@ MinimumExpanding
Definition: qsizepolicy.h:70
The QSpacerItem class provides blank space in a layout.
Definition: qlayoutitem.h:93
The QSpinBox class provides a spin box widget.
Definition: qspinbox.h:52
void setValue(int val)
Definition: qspinbox.cpp:229
int value
the value of the spin box
Definition: qspinbox.h:62
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QStringList class provides a list of strings.
The QVBoxLayout class lines up widgets vertically.
Definition: qboxlayout.h:127
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:133
void setGeometry(int x, int y, int w, int h)
Definition: qwidget.h:919
Qt::WindowFlags windowFlags() const
Definition: qwidget.h:836
QPointF mapToGlobal(const QPointF &) const
QRect geometry
the geometry of the widget relative to its parent and excluding the window frame
Definition: qwidget.h:140
QLayout * layout() const
Definition: qwidget.cpp:10115
QPoint pos
the position of the widget within its parent widget
Definition: qwidget.h:145
void move(int x, int y)
Definition: qwidget.h:913
QRect rect
the internal geometry of the widget excluding any window frame
Definition: qwidget.h:150
virtual void setVisible(bool visible)
Definition: qwidget.cpp:8198
void setWindowTitle(const QString &)
Definition: qwidget.cpp:6119
bool visible
whether the widget is visible
Definition: qwidget.h:178
The QWindow class represents a window in the underlying windowing system.
Definition: qwindow.h:99
void setTitle(const QString &)
Definition: qwindow.cpp:972
void setVisible(bool visible)
Definition: qwindow.cpp:654
void changed(const QRect &r)
void setRectValue(const QRect &r)
QRect rectValue() const
Qt::WindowFlags type() const
Definition: controls.cpp:296
void setType(Qt::WindowFlags)
Definition: controls.cpp:301
WidgetWindowControl(QWidget *w)
virtual void refresh()
virtual void refresh()
virtual void refresh()
WindowControl(QWindow *w)
[Window class definition]
Definition: window.h:64
Window(QWindow *parent=nullptr)
void exposeEvent(QExposeEvent *)
Qt::WindowStates states() const
Definition: controls.cpp:218
void setVisibleValue(bool)
Definition: controls.cpp:237
bool visibleValue() const
Definition: controls.cpp:232
void setStates(Qt::WindowStates s)
Definition: controls.cpp:226
@ ControlLayoutMargin
Definition: controls.h:40
#define this
Definition: dialogs.cpp:56
double e
@ CTRL
Definition: qnamespace.h:1096
@ white
Definition: qnamespace.h:62
@ Key_Q
Definition: qnamespace.h:588
@ CaseInsensitive
Definition: qnamespace.h:1283
@ Window
Definition: qnamespace.h:232
@ WindowFullscreenButtonHint
Definition: qnamespace.h:270
@ WindowMaximizeButtonHint
Definition: qnamespace.h:254
@ WindowMinimizeButtonHint
Definition: qnamespace.h:253
@ WindowTitleHint
Definition: qnamespace.h:251
@ WindowSystemMenuHint
Definition: qnamespace.h:252
@ WindowCloseButtonHint
Definition: qnamespace.h:266
std::pair< T1, T2 > QPair
Definition: qcontainerfwd.h:56
#define qApp
#define SLOT(a)
Definition: qobjectdefs.h:87
#define SIGNAL(a)
Definition: qobjectdefs.h:88
GLint GLint GLint GLint GLint x
[0]
GLboolean r
[2]
GLfloat GLfloat GLfloat w
[0]
GLfloat GLfloat f
GLuint GLsizei const GLchar * label
[43]
GLbitfield flags
GLint y
GLenum GLenum GLsizei void * row
Definition: qopenglext.h:2747
GLdouble s
[6]
Definition: qopenglext.h:235
GLfloat GLfloat p
[1]
Definition: qopenglext.h:12698
SSL_CTX int(*) void arg)
#define QStringLiteral(str)
#define tr(X)
#define Q_OBJECT
Definition: qtmetamacros.h:158
#define slots
Definition: qtmetamacros.h:76
#define emit
Definition: qtmetamacros.h:85
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)
QMenuBar * menuBar
[0]
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:53
QAction * triggered
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent