34 #include <QBackingStore>
35 #include <QPaintDevice>
37 #include <QResizeEvent>
43 m_x->setMaximum(2000);
46 m_y->setMaximum(2000);
55 void CoordinateControl::setCoordinates(
int x,
int y)
70 void CoordinateControl::spinBoxChanged()
72 const int x = m_x->
value();
73 const int y = m_y->
value();
88 l->addWidget(m_point);
106 void RectControl::handleChanged()
118 , m_moveEventLabel(new
QLabel(
tr(
"Move events")))
119 , m_resizeEventLabel(new
QLabel(
tr(
"Resize events")))
120 , m_mouseEventLabel(new
QLabel(
tr(
"Mouse events")))
124 m_object->installEventFilter(
this);
125 m_geometry->setTitle(
tr(
"Geometry"));
127 m_layout->addWidget(m_geometry,
row, 0, 1, 2);
136 m_layout->addWidget(frameGB,
row, 2);
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()));
148 l->addWidget(m_moveEventLabel);
149 l->addWidget(m_resizeEventLabel);
150 l->addWidget(m_mouseEventLabel);
151 m_layout->addWidget(eventGroupBox, ++
row, 2);
163 m_resizeEventLabel->
setText(
tr(
"Resize %1x%2 (#%3)")
165 .arg(++m_resizeCount));
171 m_moveEventLabel->
setText(
tr(
"Move %1,%2 (#%3)")
172 .arg(me->
pos().
x()).arg(me->
pos().
y())
173 .arg(++m_moveCount));
181 m_mouseEventLabel->
setText(
tr(
"Mouse: %1,%2 Global: %3,%4 ").
182 arg(
pos.
x()).arg(
pos.
y()).arg(globalPos.
x()).arg(globalPos.
y()));
193 void BaseWindowControl::posChanged(
const QPoint &
p)
200 void BaseWindowControl::sizeChanged(
const QSize &
s)
207 void BaseWindowControl::framePosChanged(
const QPoint &
p)
212 void BaseWindowControl::windowFlagsChanged()
214 const Qt::WindowFlags
f = m_typeControl->
type() | m_hintControl->
hints();
237 void statesChanged();
250 virtual Qt::WindowFlags objectWindowFlags(
const QObject *
o)
const
252 virtual void setObjectWindowFlags(
QObject *
o, Qt::WindowFlags
f);
266 void WidgetWindowControl::setObjectWindowFlags(
QObject *
o, Qt::WindowFlags
f)
269 const bool visible =
w->isVisible();
270 w->setWindowFlags(
f);
283 void WidgetWindowControl::statesChanged()
287 w->setWindowState(m_statesControl->
states());
311 void Window::render()
345 {
return static_cast<const QWindow *
>(
o)->framePosition(); }
347 {
static_cast<QWindow *
>(
o)->setFramePosition(
p); }
350 virtual Qt::WindowFlags objectWindowFlags(
const QObject *
o)
const
352 virtual void setObjectWindowFlags(
QObject *
o, Qt::WindowFlags
f)
353 {
static_cast<QWindow *
>(
o)->setFlags(
f); }
365 l->addWidget(m_statesControl);
375 m_statesControl->
setStates(
w->windowStates());
378 void WindowControl::stateChanged()
382 w->setWindowStates(m_statesControl->
states());
388 , m_testWindow(new
Window)
406 if (offsetArgIndex >=0 && offsetArgIndex <
args.size() - 1) {
407 y +=
args.at(offsetArgIndex + 1).toInt();
413 m_testWidget->setWindowTitle(
tr(
"TestWidget"));
419 m_testWidget->move(
x,
y);
420 m_testWidget->resize(200, 200);
423 m_testWidget->showMinimized();
425 m_testWidget->showMaximized();
427 m_testWidget->showFullScreen();
429 m_testWidget->show();
435 m_testWindow->setFramePosition(
QPoint(
x,
y));
436 m_testWindow->resize(200, 200);
438 m_testWindow->showMinimized();
440 m_testWindow->showMaximized();
442 m_testWindow->showFullScreen();
444 m_testWindow->show();
445 m_testWindow->setTitle(
tr(
"TestWindow"));
451 "<html><head/><body><p>This example lets you control the geometry"
452 " of a QWidget and a QWindow (Qt 5) for testing out"
454 "<p>It compiles with Qt 4 and Qt 5 for comparison.</p>"
455 "<p>The command line option <code>-offset <value></code> specifies"
456 " a vertical offset.</p></body></html>");
458 l->addWidget(
new QLabel(labelText));
462 l->addWidget(widgetControl);
466 l->addWidget(windowControl);
468 setCentralWidget(central);
475 #include "controllerwidget.moc"
virtual bool eventFilter(QObject *, QEvent *)
BaseWindowControl(QObject *w)
CoordinateControl(const QString &sep)
void sizeValueChanged(const QSize &s)
void pointValueChanged(const QPoint &p)
QPoint pointValue() const
void setPointValue(const QPoint &p)
void setSizeValue(const QSize &s)
void setHints(Qt::WindowFlags hints)
Qt::WindowFlags hints() const
The QAction class provides an abstraction for user commands that can be added to different user inter...
The QBackingStore class provides a drawing area for QWindow.
QPaintDevice * paintDevice()
void beginPaint(const QRegion &)
void flush(const QRegion ®ion, 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
static QStringList arguments()
The QEvent class is the base class of all event classes. Event objects contain event parameters.
The QExposeEvent class contains event parameters for expose events. \inmodule QtGui.
QGraphicsObject * parent
the parent of the item
The QGridLayout class lays out widgets in a grid.
void addWidget(QWidget *w)
The QGroupBox widget provides a group box frame with a title.
QString title
the group box title text
QGroupBox(QWidget *parent=nullptr)
void setTitle(const QString &title)
The QHBoxLayout class lines up widgets horizontally.
The QKeySequence class encapsulates a key sequence as used by shortcuts.
The QLabel widget provides a text or image display.
void setText(const QString &)
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal.
void addWidget(QWidget *w)
void setContentsMargins(int left, int top, int right, int bottom)
The QMainWindow class provides a main application window.\inmodule QtWidgets.
The QMouseEvent class contains parameters that describe a mouse event.
The QMoveEvent class contains event parameters for move events. \inmodule QtGui.
const QPoint & pos() const
The QObject class is the base class of all Qt objects.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
bool blockSignals(bool b) noexcept
void setObjectName(const QString &name)
The QPainter class performs low-level painting on widgets and other paint devices.
The QPoint class defines a point in the plane using integer precision.
constexpr int x() const noexcept
constexpr int y() const noexcept
The QRect class defines a rectangle in the plane using integer precision.
constexpr void moveTopLeft(const QPoint &p) noexcept
constexpr int height() const noexcept
constexpr void setSize(const QSize &s) noexcept
constexpr QSize size() const noexcept
constexpr int width() const noexcept
The QResizeEvent class contains event parameters for resize events. \inmodule QtGui.
const QSize & size() const
The QSize class defines the size of a two-dimensional object using integer point precision.
constexpr int height() const noexcept
constexpr int width() const noexcept
constexpr bool isEmpty() const noexcept
The QSpacerItem class provides blank space in a layout.
The QSpinBox class provides a spin box widget.
int value
the value of the spin box
The QString class provides a Unicode character string.
The QStringList class provides a list of strings.
The QVBoxLayout class lines up widgets vertically.
The QWindow class represents a window in the underlying windowing system.
void setTitle(const QString &)
void setVisible(bool visible)
void changed(const QRect &r)
void setRectValue(const QRect &r)
Qt::WindowFlags type() const
void setType(Qt::WindowFlags)
WindowControl(QWindow *w)
[Window class definition]
Window(QWindow *parent=nullptr)
void exposeEvent(QExposeEvent *)
Qt::WindowStates states() const
void setVisibleValue(bool)
bool visibleValue() const
void setStates(Qt::WindowStates s)
@ WindowFullscreenButtonHint
@ WindowMaximizeButtonHint
@ WindowMinimizeButtonHint
std::pair< T1, T2 > QPair
GLint GLint GLint GLint GLint x
[0]
GLfloat GLfloat GLfloat w
[0]
GLuint GLsizei const GLchar * label
[43]
GLenum GLenum GLsizei void * row
#define QStringLiteral(str)
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent