diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-06-26 13:50:57 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-06-28 00:09:58 +0200 |
commit | 76ba4a04223670afdfe9dc17eee3dc0ec3659f66 (patch) | |
tree | c599dd9eccdbf5c1cccb3fd70ff400194a5950a5 /examples/widgets | |
parent | cefb1c9ca9af73999247678907c496c1a143d00f (diff) |
Move dynamic layouts example to manual test
Pick-to: 6.5 6.6
Change-Id: I34288b2b22cbbfb3b77870f0c71778bcf3d552fb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'examples/widgets')
-rw-r--r-- | examples/widgets/doc/src/dynamiclayouts.qdoc | 91 | ||||
-rw-r--r-- | examples/widgets/layouts/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/widgets/layouts/dynamiclayouts/CMakeLists.txt | 37 | ||||
-rw-r--r-- | examples/widgets/layouts/dynamiclayouts/dialog.cpp | 136 | ||||
-rw-r--r-- | examples/widgets/layouts/dynamiclayouts/dialog.h | 53 | ||||
-rw-r--r-- | examples/widgets/layouts/dynamiclayouts/dynamiclayouts.pro | 10 | ||||
-rw-r--r-- | examples/widgets/layouts/dynamiclayouts/main.cpp | 15 | ||||
-rw-r--r-- | examples/widgets/layouts/layouts.pro | 1 |
8 files changed, 0 insertions, 344 deletions
diff --git a/examples/widgets/doc/src/dynamiclayouts.qdoc b/examples/widgets/doc/src/dynamiclayouts.qdoc deleted file mode 100644 index 5dea8a7f6a..0000000000 --- a/examples/widgets/doc/src/dynamiclayouts.qdoc +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \example layouts/dynamiclayouts - \title Dynamic Layouts Example - \brief Shows how to re-orient widgets in running applications. - - \e{Dynamic Layouts} implements dynamically placed widgets within running - applications. The widget placement depends on whether \c Horizontal or \c - Vertical is chosen. - - \borderedimage dynamiclayouts-example.png - For more information, visit the \l{Layout Management} page. - - \section1 Dialog Constructor - - To begin with, the application creates the UI components by calling the - following methods: - - \list - \li createRotatableGroupBox() - \li createOptionsGroupBox() - \li createButtonBox() - \endlist - - It then adds the UI components to a GridLayout (\c mainLayout). - - Finally, \c Dialog::rotateWidgets() is called. - - \quotefromfile layouts/dynamiclayouts/dialog.cpp - \skipuntil createRotatableGroupBox - \printuntil setWindowTitle - - \section1 Creating the Main Widgets - - The \c createRotatableGroupBox() method creates a rotatable group box, - then adds a series of widgets: - - \list - \li QSpinBox - \li QSlider - \li QDial - \li QProgressBar - \endlist - - It goes on to add signals and slots to each widget, and assigns - a QGridLayout called \a rotatableLayout. - - \skipto Dialog::createRotatableGroupBox - \printuntil /^\}/ - - \section1 Adding Options - - \c createOptionsGroupBox() creates the following widgets: - \list - \li \c optionsGroupBox - \li \c buttonsOrientationLabel - \li \c buttonsOrientationComboBox. The orientation of the ComboBox is either - \c horizontal (default value) or \c vertical. These two values - are added during the startup of the application. It is not possible - to leave the option empty. - \endlist - - \skipto Dialog::createOptionsGroupBox() - \printuntil /^\}/ - - \section1 Adding Buttons - - createButtonBox() constructs a QDialogButtonBox called \c buttonBox - to which are added a \c closeButton, a \c helpButton and a - \c rotateWidgetsButton. - It then assigns a signal and a slot to each button in \c buttonBox. - - \skipto Dialog::createButtonBox() - \printuntil /^\}/ - - - \section1 Rotating the Widgets - - Removes the current widgets and activates the next widget. - - \quotefromfile layouts/dynamiclayouts/dialog.cpp - \skipto Dialog::rotateWidgets() - \printuntil rotatableLayout->addWidget(rotatableWidgets[i] - \printuntil } - \printuntil } - - \include examples-run.qdocinc -*/ - diff --git a/examples/widgets/layouts/CMakeLists.txt b/examples/widgets/layouts/CMakeLists.txt index 0afe0fb07c..75355a0778 100644 --- a/examples/widgets/layouts/CMakeLists.txt +++ b/examples/widgets/layouts/CMakeLists.txt @@ -2,5 +2,4 @@ # SPDX-License-Identifier: BSD-3-Clause qt_internal_add_example(basiclayouts) -qt_internal_add_example(dynamiclayouts) qt_internal_add_example(flowlayout) diff --git a/examples/widgets/layouts/dynamiclayouts/CMakeLists.txt b/examples/widgets/layouts/dynamiclayouts/CMakeLists.txt deleted file mode 100644 index 5fe39bfb5f..0000000000 --- a/examples/widgets/layouts/dynamiclayouts/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(dynamiclayouts LANGUAGES CXX) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/layouts/dynamiclayouts") - -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) - -qt_standard_project_setup() - -qt_add_executable(dynamiclayouts - dialog.cpp dialog.h - main.cpp -) - -set_target_properties(dynamiclayouts PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(dynamiclayouts PRIVATE - Qt6::Core - Qt6::Gui - Qt6::Widgets -) - -install(TARGETS dynamiclayouts - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/layouts/dynamiclayouts/dialog.cpp b/examples/widgets/layouts/dynamiclayouts/dialog.cpp deleted file mode 100644 index 28b4fc2f7f..0000000000 --- a/examples/widgets/layouts/dynamiclayouts/dialog.cpp +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QtWidgets> - -#include "dialog.h" - -Dialog::Dialog(QWidget *parent) - : QDialog(parent) -{ - createRotatableGroupBox(); - createOptionsGroupBox(); - createButtonBox(); - - mainLayout = new QGridLayout; - mainLayout->addWidget(rotatableGroupBox, 0, 0); - mainLayout->addWidget(optionsGroupBox, 1, 0); - mainLayout->addWidget(buttonBox, 2, 0); - setLayout(mainLayout); - - mainLayout->setSizeConstraint(QLayout::SetMinimumSize); - - setWindowTitle(tr("Dynamic Layouts")); -} - -void Dialog::buttonsOrientationChanged(int index) -{ - mainLayout->setSizeConstraint(QLayout::SetNoConstraint); - setMinimumSize(0, 0); - - Qt::Orientation orientation = Qt::Orientation( - buttonsOrientationComboBox->itemData(index).toInt()); - - if (orientation == buttonBox->orientation()) - return; - - mainLayout->removeWidget(buttonBox); - - int spacing = mainLayout->spacing(); - - QSize oldSizeHint = buttonBox->sizeHint() + QSize(spacing, spacing); - buttonBox->setOrientation(orientation); - QSize newSizeHint = buttonBox->sizeHint() + QSize(spacing, spacing); - - if (orientation == Qt::Horizontal) { - mainLayout->addWidget(buttonBox, 2, 0); - resize(size() + QSize(-oldSizeHint.width(), newSizeHint.height())); - } else { - mainLayout->addWidget(buttonBox, 0, 3, 2, 1); - resize(size() + QSize(newSizeHint.width(), -oldSizeHint.height())); - } - - mainLayout->setSizeConstraint(QLayout::SetDefaultConstraint); -} - -void Dialog::rotateWidgets() -{ - Q_ASSERT(rotatableWidgets.count() % 2 == 0); - - for (QWidget *widget : std::as_const(rotatableWidgets)) - rotatableLayout->removeWidget(widget); - - rotatableWidgets.enqueue(rotatableWidgets.dequeue()); - - const int n = rotatableWidgets.count(); - for (int i = 0; i < n / 2; ++i) { - rotatableLayout->addWidget(rotatableWidgets[n - i - 1], 0, i); - rotatableLayout->addWidget(rotatableWidgets[i], 1, i); - } -} - -void Dialog::help() -{ - QMessageBox::information(this, tr("Dynamic Layouts Help"), - tr("This example shows how to change layouts " - "dynamically.")); -} - -void Dialog::createRotatableGroupBox() -{ - rotatableGroupBox = new QGroupBox(tr("Rotatable Widgets")); - - rotatableWidgets.enqueue(new QSpinBox); - rotatableWidgets.enqueue(new QSlider); - rotatableWidgets.enqueue(new QDial); - rotatableWidgets.enqueue(new QProgressBar); - - int n = rotatableWidgets.count(); - for (int i = 0; i < n; ++i) { - connect(rotatableWidgets[i], SIGNAL(valueChanged(int)), - rotatableWidgets[(i + 1) % n], SLOT(setValue(int))); - } - - rotatableLayout = new QGridLayout; - rotatableGroupBox->setLayout(rotatableLayout); - - rotateWidgets(); -} - -void Dialog::createOptionsGroupBox() -{ - optionsGroupBox = new QGroupBox(tr("Options")); - - buttonsOrientationLabel = new QLabel(tr("Orientation of buttons:")); - - buttonsOrientationComboBox = new QComboBox; - buttonsOrientationComboBox->addItem(tr("Horizontal"), Qt::Horizontal); - buttonsOrientationComboBox->addItem(tr("Vertical"), Qt::Vertical); - - connect(buttonsOrientationComboBox, - &QComboBox::currentIndexChanged, - this, - &Dialog::buttonsOrientationChanged); - - optionsLayout = new QGridLayout; - optionsLayout->addWidget(buttonsOrientationLabel, 0, 0); - optionsLayout->addWidget(buttonsOrientationComboBox, 0, 1); - optionsLayout->setColumnStretch(2, 1); - optionsGroupBox->setLayout(optionsLayout); -} - -void Dialog::createButtonBox() -{ - buttonBox = new QDialogButtonBox; - - closeButton = buttonBox->addButton(QDialogButtonBox::Close); - helpButton = buttonBox->addButton(QDialogButtonBox::Help); - rotateWidgetsButton = buttonBox->addButton(tr("Rotate &Widgets"), - QDialogButtonBox::ActionRole); - - connect(rotateWidgetsButton, &QPushButton::clicked, this, &Dialog::rotateWidgets); - connect(closeButton, &QPushButton::clicked, this, &Dialog::close); - connect(helpButton, &QPushButton::clicked, this, &Dialog::help); -} - - diff --git a/examples/widgets/layouts/dynamiclayouts/dialog.h b/examples/widgets/layouts/dynamiclayouts/dialog.h deleted file mode 100644 index 89424cee8a..0000000000 --- a/examples/widgets/layouts/dynamiclayouts/dialog.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef DIALOG_H -#define DIALOG_H - -#include <QDialog> -#include <QQueue> - -QT_BEGIN_NAMESPACE -class QComboBox; -class QDialogButtonBox; -class QGridLayout; -class QGroupBox; -class QLabel; -class QPushButton; -QT_END_NAMESPACE - -class Dialog : public QDialog -{ - Q_OBJECT - -public: - Dialog(QWidget *parent = nullptr); - -private slots: - void buttonsOrientationChanged(int index); - void rotateWidgets(); - void help(); - -private: - void createRotatableGroupBox(); - void createOptionsGroupBox(); - void createButtonBox(); - - QGroupBox *rotatableGroupBox; - QQueue<QWidget *> rotatableWidgets; - - QGroupBox *optionsGroupBox; - QLabel *buttonsOrientationLabel; - QComboBox *buttonsOrientationComboBox; - - QDialogButtonBox *buttonBox; - QPushButton *closeButton; - QPushButton *helpButton; - QPushButton *rotateWidgetsButton; - - QGridLayout *mainLayout; - QGridLayout *rotatableLayout; - QGridLayout *optionsLayout; -}; - -#endif // DIALOG_H diff --git a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.pro b/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.pro deleted file mode 100644 index dcd4288698..0000000000 --- a/examples/widgets/layouts/dynamiclayouts/dynamiclayouts.pro +++ /dev/null @@ -1,10 +0,0 @@ -QT += widgets -requires(qtConfig(combobox)) - -HEADERS = dialog.h -SOURCES = dialog.cpp \ - main.cpp - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/layouts/dynamiclayouts -INSTALLS += target diff --git a/examples/widgets/layouts/dynamiclayouts/main.cpp b/examples/widgets/layouts/dynamiclayouts/main.cpp deleted file mode 100644 index 865e0d1579..0000000000 --- a/examples/widgets/layouts/dynamiclayouts/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QApplication> - -#include "dialog.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - Dialog dialog; - dialog.show(); - - return app.exec(); -} diff --git a/examples/widgets/layouts/layouts.pro b/examples/widgets/layouts/layouts.pro index 6821e33359..c0b5453f02 100644 --- a/examples/widgets/layouts/layouts.pro +++ b/examples/widgets/layouts/layouts.pro @@ -1,4 +1,3 @@ TEMPLATE = subdirs SUBDIRS = basiclayouts \ - dynamiclayouts \ flowlayout |