QPA/Windows example: Set proper window flags, titles, names.
Do not leak windows. Change-Id: I3af29ce597742cbe6444208aa72443c0507819db Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
This commit is contained in:
parent
af83eecd76
commit
c6271071b4
@ -41,35 +41,47 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QScreen>
|
||||
#include <QRect>
|
||||
#include <QSharedPointer>
|
||||
|
||||
#include "window.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
typedef QSharedPointer<QWindow> WindowPtr;
|
||||
|
||||
QGuiApplication app(argc, argv);
|
||||
|
||||
Window a;
|
||||
a.setFramePos(QPoint(10, 10));
|
||||
a.setWindowTitle(QStringLiteral("Window A"));
|
||||
a.setObjectName(a.windowTitle());
|
||||
a.setVisible(true);
|
||||
|
||||
Window b;
|
||||
b.setFramePos(QPoint(100, 100));
|
||||
b.setWindowTitle(QStringLiteral("Window B"));
|
||||
b.setObjectName(b.windowTitle());
|
||||
b.setVisible(true);
|
||||
|
||||
Window child(&b);
|
||||
child.setObjectName(QStringLiteral("ChildOfB"));
|
||||
child.setVisible(true);
|
||||
|
||||
// create one window on each additional screen as well
|
||||
|
||||
QList<QScreen *> screens = app.screens();
|
||||
QList<WindowPtr> windows;
|
||||
foreach (QScreen *screen, screens) {
|
||||
if (screen == app.primaryScreen())
|
||||
continue;
|
||||
Window *window = new Window(screen);
|
||||
WindowPtr window(new Window(screen));
|
||||
QRect geometry = window->geometry();
|
||||
geometry.moveCenter(screen->availableGeometry().center());
|
||||
window->setGeometry(geometry);
|
||||
window->setVisible(true);
|
||||
window->setWindowTitle(screen->name());
|
||||
window->setObjectName(window->windowTitle());
|
||||
windows.push_back(window);
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
|
@ -73,10 +73,13 @@ void Window::initialize()
|
||||
if (parent())
|
||||
setGeometry(QRect(160, 120, 320, 240));
|
||||
else {
|
||||
setGeometry(QRect(10, 10, 640, 480));
|
||||
setWindowFlags(windowFlags() | Qt::WindowTitleHint | Qt::WindowSystemMenuHint
|
||||
| Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
|
||||
const QSize baseSize = QSize(640, 480);
|
||||
setGeometry(QRect(geometry().topLeft(), baseSize));
|
||||
|
||||
setSizeIncrement(QSize(10, 10));
|
||||
setBaseSize(QSize(640, 480));
|
||||
setBaseSize(baseSize);
|
||||
setMinimumSize(QSize(240, 160));
|
||||
setMaximumSize(QSize(800, 600));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user