Revision control
++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ #include <QtWidgets>
++
++ #include "dialog.h"
++
++ //! [0]
++ Dialog::Dialog()
++ {
++ createMenu();
++ createHorizontalGroupBox();
++ createGridGroupBox();
++ createFormGroupBox();
++ //! [0]
++
++ //! [1]
++ bigEditor = new QTextEdit;
++ bigEditor->setPlainText(tr("This widget takes up all the remaining space "
++ "in the top-level layout."));
++
++ buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
++ | QDialogButtonBox::Cancel);
++
++ connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
++ connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
++ //! [1]
++
++ //! [2]
++ QVBoxLayout *mainLayout = new QVBoxLayout;
++ //! [2] //! [3]
++ mainLayout->setMenuBar(menuBar);
++ //! [3] //! [4]
++ mainLayout->addWidget(horizontalGroupBox);
++ mainLayout->addWidget(gridGroupBox);
++ mainLayout->addWidget(formGroupBox);
++ mainLayout->addWidget(bigEditor);
++ mainLayout->addWidget(buttonBox);
++ //! [4]
++ QWidget *scrollAreaContent = new QWidget;
++ scrollAreaContent->setLayout(mainLayout);
++
++ QScrollArea *scrollArea = new QScrollArea;
++ scrollArea->setFrameShape(QFrame::NoFrame);
++ scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
++ scrollArea->setWidgetResizable(true);
++ scrollArea->verticalScrollBar()->setStyleSheet("QScrollBar:vertical {width: 20px;}");
++
++ scrollArea->setWidget(scrollAreaContent);
++
++ QVBoxLayout *scrollLayout = new QVBoxLayout;
++ scrollLayout->setContentsMargins(0,0,0,0);
++ scrollLayout->addWidget(scrollArea);
++
++ //! [5]
++ setLayout(scrollLayout);
++ setWindowTitle(tr("Basic Layouts"));
++ }
++ //! [5]
++
++ //! [6]
++ void Dialog::createMenu()
++ {
++ menuBar = new QMenuBar;
++
++ fileMenu = new QMenu(tr("&File"), this);
++ exitAction = fileMenu->addAction(tr("E&xit"));
++ menuBar->addMenu(fileMenu);
++
++ connect(exitAction, &QAction::triggered, this, &QDialog::accept);
++ }
++ //! [6]
++
++ //! [7]
++ void Dialog::createHorizontalGroupBox()
++ {
++ horizontalGroupBox = new QGroupBox(tr("Horizontal layout"));
++ QHBoxLayout *layout = new QHBoxLayout;
++
++ for (int i = 0; i < NumButtons; ++i) {
++ buttons[i] = new QPushButton(tr("Button %1").arg(i + 1));
++ layout->addWidget(buttons[i]);
++ }
++ horizontalGroupBox->setLayout(layout);
++ }
++ //! [7]
++
++ //! [8]
++ void Dialog::createGridGroupBox()
++ {
++ gridGroupBox = new QGroupBox(tr("Grid layout"));
++ //! [8]
++ QGridLayout *layout = new QGridLayout;
++
++ //! [9]
++ for (int i = 0; i < NumGridRows; ++i) {
++ labels[i] = new QLabel(tr("Line %1:").arg(i + 1));
++ lineEdits[i] = new QLineEdit;
++ layout->addWidget(labels[i], i + 1, 0);
++ layout->addWidget(lineEdits[i], i + 1, 1);
++ }
++
++ //! [9] //! [10]
++ smallEditor = new QTextEdit;
++ smallEditor->setPlainText(tr("This widget takes up about two thirds of the "
++ "grid layout."));
++ layout->addWidget(smallEditor, 0, 2, 4, 1);
++ //! [10]
++
++ //! [11]
++ layout->setColumnStretch(1, 10);
++ layout->setColumnStretch(2, 20);
++ gridGroupBox->setLayout(layout);
++ }
++ //! [11]
++
++ //! [12]
++ void Dialog::createFormGroupBox()
++ {
++ formGroupBox = new QGroupBox(tr("Form layout"));
++ QFormLayout *layout = new QFormLayout;
++ layout->addRow(new QLabel(tr("Line 1:")), new QLineEdit);
++ layout->addRow(new QLabel(tr("Line 2, long text:")), new QComboBox);
++ layout->addRow(new QLabel(tr("Line 3:")), new QSpinBox);
++ formGroupBox->setLayout(layout);
++ }
++ //! [12]