diff options
Diffstat (limited to 'tests/manual/qgraphicslayout')
17 files changed, 432 insertions, 90 deletions
diff --git a/tests/manual/qgraphicslayout/anchorlayout/CMakeLists.txt b/tests/manual/qgraphicslayout/anchorlayout/CMakeLists.txt new file mode 100644 index 0000000000..13331a74a8 --- /dev/null +++ b/tests/manual/qgraphicslayout/anchorlayout/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +##################################################################### +## anchorlayout Binary: +##################################################################### +cmake_minimum_required(VERSION 3.16) + +qt_internal_add_manual_test(anchorlayout + GUI + SOURCES + main.cpp + LIBRARIES + Qt::Gui + Qt::Widgets +) + diff --git a/tests/manual/qgraphicslayout/anchorlayout/anchorlayout.pro b/tests/manual/qgraphicslayout/anchorlayout/anchorlayout.pro new file mode 100644 index 0000000000..1afba2747c --- /dev/null +++ b/tests/manual/qgraphicslayout/anchorlayout/anchorlayout.pro @@ -0,0 +1,9 @@ +TARGET = anchorlayout + +QT += widgets + +SOURCES = main.cpp + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/widgets/graphicsview/anchorlayout +INSTALLS += target diff --git a/tests/manual/qgraphicslayout/anchorlayout/main.cpp b/tests/manual/qgraphicslayout/anchorlayout/main.cpp new file mode 100644 index 0000000000..93f712753b --- /dev/null +++ b/tests/manual/qgraphicslayout/anchorlayout/main.cpp @@ -0,0 +1,89 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QtWidgets> + +static QGraphicsProxyWidget *createItem(const QSizeF &minimum = QSizeF(100.0, 100.0), + const QSizeF &preferred = QSize(150.0, 100.0), + const QSizeF &maximum = QSizeF(200.0, 100.0), + const QString &name = "0") +{ + QGraphicsProxyWidget *w = new QGraphicsProxyWidget; + w->setWidget(new QPushButton(name)); + w->setData(0, name); + w->setMinimumSize(minimum); + w->setPreferredSize(preferred); + w->setMaximumSize(maximum); + + w->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + return w; +} + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + QGraphicsScene scene; + scene.setSceneRect(0, 0, 800, 480); + + QSizeF minSize(30, 100); + QSizeF prefSize(210, 100); + QSizeF maxSize(300, 100); + + QGraphicsProxyWidget *a = createItem(minSize, prefSize, maxSize, "A"); + QGraphicsProxyWidget *b = createItem(minSize, prefSize, maxSize, "B"); + QGraphicsProxyWidget *c = createItem(minSize, prefSize, maxSize, "C"); + QGraphicsProxyWidget *d = createItem(minSize, prefSize, maxSize, "D"); + QGraphicsProxyWidget *e = createItem(minSize, prefSize, maxSize, "E"); + QGraphicsProxyWidget *f = createItem(QSizeF(30, 50), QSizeF(150, 50), maxSize, "F (overflow)"); + QGraphicsProxyWidget *g = createItem(QSizeF(30, 50), QSizeF(30, 100), maxSize, "G (overflow)"); + + QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout; + l->setSpacing(0); + + QGraphicsWidget *w = new QGraphicsWidget(nullptr, Qt::Window); + w->setPos(20, 20); + w->setLayout(l); + + // vertical + l->addAnchor(a, Qt::AnchorTop, l, Qt::AnchorTop); + l->addAnchor(b, Qt::AnchorTop, l, Qt::AnchorTop); + + l->addAnchor(c, Qt::AnchorTop, a, Qt::AnchorBottom); + l->addAnchor(c, Qt::AnchorTop, b, Qt::AnchorBottom); + l->addAnchor(c, Qt::AnchorBottom, d, Qt::AnchorTop); + l->addAnchor(c, Qt::AnchorBottom, e, Qt::AnchorTop); + + l->addAnchor(d, Qt::AnchorBottom, l, Qt::AnchorBottom); + l->addAnchor(e, Qt::AnchorBottom, l, Qt::AnchorBottom); + + l->addAnchor(c, Qt::AnchorTop, f, Qt::AnchorTop); + l->addAnchor(c, Qt::AnchorVerticalCenter, f, Qt::AnchorBottom); + l->addAnchor(f, Qt::AnchorBottom, g, Qt::AnchorTop); + l->addAnchor(c, Qt::AnchorBottom, g, Qt::AnchorBottom); + + // horizontal + l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft); + l->addAnchor(l, Qt::AnchorLeft, d, Qt::AnchorLeft); + l->addAnchor(a, Qt::AnchorRight, b, Qt::AnchorLeft); + + l->addAnchor(a, Qt::AnchorRight, c, Qt::AnchorLeft); + l->addAnchor(c, Qt::AnchorRight, e, Qt::AnchorLeft); + + l->addAnchor(b, Qt::AnchorRight, l, Qt::AnchorRight); + l->addAnchor(e, Qt::AnchorRight, l, Qt::AnchorRight); + l->addAnchor(d, Qt::AnchorRight, e, Qt::AnchorLeft); + + l->addAnchor(l, Qt::AnchorLeft, f, Qt::AnchorLeft); + l->addAnchor(l, Qt::AnchorLeft, g, Qt::AnchorLeft); + l->addAnchor(f, Qt::AnchorRight, g, Qt::AnchorRight); + + + scene.addItem(w); + scene.setBackgroundBrush(Qt::darkGreen); + QGraphicsView view(&scene); + + view.show(); + + return app.exec(); +} diff --git a/tests/manual/qgraphicslayout/flicker/CMakeLists.txt b/tests/manual/qgraphicslayout/flicker/CMakeLists.txt new file mode 100644 index 0000000000..f49cfa5015 --- /dev/null +++ b/tests/manual/qgraphicslayout/flicker/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +##################################################################### +## flicker Binary: +##################################################################### + +qt_internal_add_manual_test(flicker + GUI + SOURCES + main.cpp + window.cpp window.h + LIBRARIES + Qt::Gui + Qt::Widgets +) diff --git a/tests/manual/qgraphicslayout/flicker/main.cpp b/tests/manual/qgraphicslayout/flicker/main.cpp index 9e6d98e1dd..f7a227a401 100644 --- a/tests/manual/qgraphicslayout/flicker/main.cpp +++ b/tests/manual/qgraphicslayout/flicker/main.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QMainWindow> #include <QApplication> diff --git a/tests/manual/qgraphicslayout/flicker/window.cpp b/tests/manual/qgraphicslayout/flicker/window.cpp index 32d12f35ee..a30c1e0cf6 100644 --- a/tests/manual/qgraphicslayout/flicker/window.cpp +++ b/tests/manual/qgraphicslayout/flicker/window.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include "window.h" @@ -41,7 +16,7 @@ void SlowWidget::setGeometry(const QRectF &rect) qDebug() << "currentBenchmarkIteration:" << stats.currentBenchmarkIteration; if (stats.currentBenchmarkIteration == m_window->m_benchmarkIterationsSpinBox->value()) { if (stats.output) - stats.output->setText(tr("DONE. Elapsed: %1, setGeometryCount: %2").arg(stats.time.elapsed()).arg(stats.setGeometryCount)); + stats.output->setText(tr("DONE. Elapsed: %1, setGeometryCount: %2").arg(stats.timer.elapsed()).arg(stats.setGeometryCount)); } else { reiterate = true; } @@ -57,4 +32,3 @@ void SlowWidget::setGeometry(const QRectF &rect) //QTimer::singleShot(0, m_window, SLOT(doAgain())); } } - diff --git a/tests/manual/qgraphicslayout/flicker/window.h b/tests/manual/qgraphicslayout/flicker/window.h index b2ebe60af4..d54c69050f 100644 --- a/tests/manual/qgraphicslayout/flicker/window.h +++ b/tests/manual/qgraphicslayout/flicker/window.h @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef WINDOW_H #define WINDOW_H @@ -43,7 +18,7 @@ #include <QApplication> #include <QThread> #include <QMap> -#include <QTime> +#include <QElapsedTimer> #include <QDebug> struct Statistics { @@ -52,17 +27,13 @@ struct Statistics { { } QMap<QGraphicsWidget*, int> setGeometryTracker; - QTime time; + QElapsedTimer timer; int setGeometryCount; int sleepMsecs; QLabel *output; void sleep() { -#if QT_VERSION >= 0x050000 QThread::msleep(sleepMsecs); -#else - qWarning("%s unimplemented", Q_FUNC_INFO); -#endif } int currentBenchmarkIteration; bool relayoutClicked; @@ -227,7 +198,7 @@ private slots: m_stats.setGeometryCount = 0; m_stats.setGeometryTracker.clear(); m_stats.sleepMsecs = m_sleepSpinBox->value(); - m_stats.time.start(); + m_stats.timer.start(); m_stats.currentBenchmarkIteration = 0; m_leaf->setMinimumSize(sz); m_leaf->setMaximumSize(sz); diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/CMakeLists.txt b/tests/manual/qgraphicslayout/weatheranchorlayout/CMakeLists.txt new file mode 100644 index 0000000000..9f9f3f56f9 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/CMakeLists.txt @@ -0,0 +1,34 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +##################################################################### +## weatheranchorlayout Binary: +##################################################################### +cmake_minimum_required(VERSION 3.16) + +qt_internal_add_manual_test(weatheranchorlayout + GUI + SOURCES + main.cpp + LIBRARIES + Qt::Gui + Qt::Widgets +) + +# Resources: +set(weatheranchorlayout_resource_files + "images/5days.jpg" + "images/details.jpg" + "images/place.jpg" + "images/tabbar.jpg" + "images/title.jpg" + "images/weather-few-clouds.png" +) + +qt_add_resources(weatheranchorlayout "weatheranchorlayout" + PREFIX + "/" + FILES + ${weatheranchorlayout_resource_files} +) + diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/5days.jpg b/tests/manual/qgraphicslayout/weatheranchorlayout/images/5days.jpg Binary files differnew file mode 100644 index 0000000000..fd92ba8ba7 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/5days.jpg diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/details.jpg b/tests/manual/qgraphicslayout/weatheranchorlayout/images/details.jpg Binary files differnew file mode 100644 index 0000000000..fde0448c69 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/details.jpg diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/place.jpg b/tests/manual/qgraphicslayout/weatheranchorlayout/images/place.jpg Binary files differnew file mode 100644 index 0000000000..03e5344330 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/place.jpg diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/tabbar.jpg b/tests/manual/qgraphicslayout/weatheranchorlayout/images/tabbar.jpg Binary files differnew file mode 100644 index 0000000000..7777662901 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/tabbar.jpg diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/title.jpg b/tests/manual/qgraphicslayout/weatheranchorlayout/images/title.jpg Binary files differnew file mode 100644 index 0000000000..fa84c8156c --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/title.jpg diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/images/weather-few-clouds.png b/tests/manual/qgraphicslayout/weatheranchorlayout/images/weather-few-clouds.png Binary files differnew file mode 100644 index 0000000000..eea6ce6529 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/images/weather-few-clouds.png diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/main.cpp b/tests/manual/qgraphicslayout/weatheranchorlayout/main.cpp new file mode 100644 index 0000000000..bdf7c00942 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/main.cpp @@ -0,0 +1,239 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QApplication> +#include <QLabel> +#include <QGraphicsAnchorLayout> +#include <QGraphicsProxyWidget> +#include <QGraphicsScene> +#include <QGraphicsSceneResizeEvent> +#include <QGraphicsView> +#include <QGraphicsWidget> +#include <QPainter> +#include <QPushButton> + + +class GraphicsView : public QGraphicsView +{ +public: + GraphicsView(QGraphicsScene *scene, QGraphicsWidget *widget) + : QGraphicsView(scene), w(widget) + { + } + + void resizeEvent(QResizeEvent *event) override + { + w->setGeometry(0, 0, event->size().width(), event->size().height()); + } + + QGraphicsWidget *w; +}; + +class PixmapWidget : public QGraphicsLayoutItem +{ +public: + PixmapWidget(const QPixmap &pix) + : QGraphicsLayoutItem(), original(new QGraphicsPixmapItem(pix)) + , r(QRectF(QPointF(0, 0), pix.size())) + { + setGraphicsItem(original); + original->show(); + } + + ~PixmapWidget() + { + setGraphicsItem(nullptr); + delete original; + } + + void setZValue(qreal z) + { + original->setZValue(z); + } + + void setGeometry(const QRectF &rect) override + { + original->setTransform(QTransform::fromScale(rect.width() / r.width(), + rect.height() / r.height()), true); + original->setPos(rect.x(), rect.y()); + r = rect; + } + +protected: + QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override + { + Q_UNUSED(constraint); + QSizeF sh; + switch (which) { + case Qt::MinimumSize: + sh = QSizeF(0, 0); + break; + case Qt::PreferredSize: + sh = QSizeF(50, 50); + break; + case Qt::MaximumSize: + sh = QSizeF(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); + break; + default: + break; + } + return sh; + } + +private: + QGraphicsPixmapItem *original; + QRectF r; +}; + + +class PlaceWidget : public QGraphicsWidget +{ + Q_OBJECT + +public: + PlaceWidget(const QPixmap &pix) + : QGraphicsWidget() + , original(pix) + , scaled(pix) + { + } + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override + { + const QPointF reflection(0, scaled.height() + 2); + + painter->drawPixmap(QPointF(), scaled); + + QPixmap tmp(scaled.size()); + tmp.fill(Qt::transparent); + QPainter p(&tmp); + + // create gradient + QPoint p1(scaled.width() / 2, 0); + QPoint p2(scaled.width() / 2, scaled.height()); + QLinearGradient linearGrad(p1, p2); + linearGrad.setColorAt(0, QColor(0, 0, 0, 0)); + linearGrad.setColorAt(0.65, QColor(0, 0, 0, 127)); + linearGrad.setColorAt(1, QColor(0, 0, 0, 255)); + + // apply 'mask' + p.setBrush(linearGrad); + p.fillRect(0, 0, tmp.width(), tmp.height(), QBrush(linearGrad)); + p.fillRect(0, 0, tmp.width(), tmp.height(), QBrush(linearGrad)); + + // paint the image flipped + p.setCompositionMode(QPainter::CompositionMode_DestinationOver); + p.drawPixmap(0, 0, QPixmap::fromImage(scaled.toImage().mirrored(false, true))); + p.end(); + + painter->drawPixmap(reflection, tmp); + } + + void resizeEvent(QGraphicsSceneResizeEvent *event) override + { + QSize newSize = event->newSize().toSize(); + newSize.setHeight(newSize.height() / 2); + scaled = original.scaled(newSize); + } + + QRectF boundingRect() const override + { + QSize size(scaled.width(), scaled.height() * 2 + 2); + return QRectF(QPointF(0, 0), size); + } + +private: + QPixmap original; + QPixmap scaled; +}; + + +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(weatheranchorlayout); + + QApplication app(argc, argv); + + QGraphicsScene scene; + scene.setSceneRect(0, 0, 800, 480); + + // pixmaps widgets + PixmapWidget *title = new PixmapWidget(QPixmap(":/images/title.jpg")); + PlaceWidget *place = new PlaceWidget(QPixmap(":/images/place.jpg")); + PixmapWidget *details = new PixmapWidget(QPixmap(":/images/5days.jpg")); + PixmapWidget *sunnyWeather = new PixmapWidget(QPixmap(":/images/weather-few-clouds.png")); + PixmapWidget *tabbar = new PixmapWidget(QPixmap(":/images/tabbar.jpg")); + + + // setup sizes + title->setPreferredSize(QSizeF(348, 45)); + title->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + + place->setPreferredSize(QSizeF(96, 72)); + place->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + + details->setMinimumSize(QSizeF(200, 112)); + details->setPreferredSize(QSizeF(200, 112)); + details->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + + tabbar->setPreferredSize(QSizeF(70, 24)); + tabbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + + sunnyWeather->setPreferredSize(QSizeF(128, 97)); + sunnyWeather->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + sunnyWeather->setZValue(9999); + + // start anchor layout + QGraphicsAnchorLayout *layout = new QGraphicsAnchorLayout; + layout->setSpacing(0); + + // setup the main widget + QGraphicsWidget *widget = new QGraphicsWidget(nullptr, Qt::Window); + QPalette p; + p.setColor(QPalette::Window, Qt::black); + widget->setPalette(p); + widget->setPos(20, 20); + widget->setLayout(layout); + + // vertical anchors + QGraphicsAnchor *anchor = layout->addAnchor(title, Qt::AnchorTop, layout, Qt::AnchorTop); + anchor = layout->addAnchor(place, Qt::AnchorTop, title, Qt::AnchorBottom); + anchor->setSpacing(12); + anchor = layout->addAnchor(place, Qt::AnchorBottom, layout, Qt::AnchorBottom); + anchor->setSpacing(12); + + anchor = layout->addAnchor(sunnyWeather, Qt::AnchorTop, title, Qt::AnchorTop); + anchor = layout->addAnchor(sunnyWeather, Qt::AnchorBottom, layout, Qt::AnchorVerticalCenter); + + anchor = layout->addAnchor(tabbar, Qt::AnchorTop, title, Qt::AnchorBottom); + anchor->setSpacing(5); + anchor = layout->addAnchor(details, Qt::AnchorTop, tabbar, Qt::AnchorBottom); + anchor->setSpacing(2); + anchor = layout->addAnchor(details, Qt::AnchorBottom, layout, Qt::AnchorBottom); + anchor->setSpacing(12); + + // horizontal anchors + anchor = layout->addAnchor(layout, Qt::AnchorLeft, title, Qt::AnchorLeft); + anchor = layout->addAnchor(title, Qt::AnchorRight, layout, Qt::AnchorRight); + + anchor = layout->addAnchor(place, Qt::AnchorLeft, layout, Qt::AnchorLeft); + anchor->setSpacing(15); + anchor = layout->addAnchor(place, Qt::AnchorRight, details, Qt::AnchorLeft); + anchor->setSpacing(35); + + anchor = layout->addAnchor(sunnyWeather, Qt::AnchorLeft, place, Qt::AnchorHorizontalCenter); + anchor = layout->addAnchor(sunnyWeather, Qt::AnchorRight, layout, Qt::AnchorHorizontalCenter); + + anchor = layout->addAnchor(tabbar, Qt::AnchorHorizontalCenter, details, Qt::AnchorHorizontalCenter); + anchor = layout->addAnchor(details, Qt::AnchorRight, layout, Qt::AnchorRight); + + // QGV setup + scene.addItem(widget); + scene.setBackgroundBrush(Qt::white); + QGraphicsView *view = new QGraphicsView(&scene); + view->show(); + + return app.exec(); +} + +#include "main.moc" diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.pro b/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.pro new file mode 100644 index 0000000000..db1c453cb4 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.pro @@ -0,0 +1,8 @@ +QT += widgets + +SOURCES += main.cpp +RESOURCES += weatheranchorlayout.qrc + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/widgets/graphicsview/weatheranchorlayout +INSTALLS += target diff --git a/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.qrc b/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.qrc new file mode 100644 index 0000000000..e39f8c0423 --- /dev/null +++ b/tests/manual/qgraphicslayout/weatheranchorlayout/weatheranchorlayout.qrc @@ -0,0 +1,10 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> + <file>images/5days.jpg</file> + <file>images/title.jpg</file> + <file>images/place.jpg</file> + <file>images/tabbar.jpg</file> + <file>images/details.jpg</file> + <file>images/weather-few-clouds.png</file> +</qresource> +</RCC> |