diff options
Diffstat (limited to 'tests/manual/examples/widgets/widgets/tetrix/tetrixwindow.cpp')
-rw-r--r-- | tests/manual/examples/widgets/widgets/tetrix/tetrixwindow.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/manual/examples/widgets/widgets/tetrix/tetrixwindow.cpp b/tests/manual/examples/widgets/widgets/tetrix/tetrixwindow.cpp new file mode 100644 index 0000000000..ae10a778e7 --- /dev/null +++ b/tests/manual/examples/widgets/widgets/tetrix/tetrixwindow.cpp @@ -0,0 +1,82 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "tetrixboard.h" +#include "tetrixwindow.h" + +#include <QCoreApplication> +#include <QGridLayout> +#include <QLabel> +#include <QLCDNumber> +#include <QPushButton> + +//! [0] +TetrixWindow::TetrixWindow(QWidget *parent) + : QWidget(parent), board(new TetrixBoard) +{ +//! [0] + nextPieceLabel = new QLabel; + nextPieceLabel->setFrameStyle(QFrame::Box | QFrame::Raised); + nextPieceLabel->setAlignment(Qt::AlignCenter); + board->setNextPieceLabel(nextPieceLabel); +//! [1] + scoreLcd = new QLCDNumber(5); + scoreLcd->setSegmentStyle(QLCDNumber::Filled); +//! [1] + levelLcd = new QLCDNumber(2); + levelLcd->setSegmentStyle(QLCDNumber::Filled); + linesLcd = new QLCDNumber(5); + linesLcd->setSegmentStyle(QLCDNumber::Filled); + +//! [2] + startButton = new QPushButton(tr("&Start")); + startButton->setFocusPolicy(Qt::NoFocus); + quitButton = new QPushButton(tr("&Quit")); + quitButton->setFocusPolicy(Qt::NoFocus); + pauseButton = new QPushButton(tr("&Pause")); +//! [2] //! [3] + pauseButton->setFocusPolicy(Qt::NoFocus); +//! [3] //! [4] + + connect(startButton, &QPushButton::clicked, board, &TetrixBoard::start); +//! [4] //! [5] + connect(quitButton , &QPushButton::clicked, qApp, &QCoreApplication::quit); + connect(pauseButton, &QPushButton::clicked, board, &TetrixBoard::pause); + connect(board, &TetrixBoard::scoreChanged, + scoreLcd, qOverload<int>(&QLCDNumber::display)); + connect(board, &TetrixBoard::levelChanged, + levelLcd, qOverload<int>(&QLCDNumber::display)); + connect(board, &TetrixBoard::linesRemovedChanged, + linesLcd, qOverload<int>(&QLCDNumber::display)); +//! [5] + +//! [6] + QGridLayout *layout = new QGridLayout; + layout->addWidget(createLabel(tr("NEXT")), 0, 0); + layout->addWidget(nextPieceLabel, 1, 0); + layout->addWidget(createLabel(tr("LEVEL")), 2, 0); + layout->addWidget(levelLcd, 3, 0); + layout->addWidget(startButton, 4, 0); + layout->addWidget(board, 0, 1, 6, 1); + layout->addWidget(createLabel(tr("SCORE")), 0, 2); + layout->addWidget(scoreLcd, 1, 2); + layout->addWidget(createLabel(tr("LINES REMOVED")), 2, 2); + layout->addWidget(linesLcd, 3, 2); + layout->addWidget(quitButton, 4, 2); + layout->addWidget(pauseButton, 5, 2); + setLayout(layout); + + setWindowTitle(tr("Tetrix")); + resize(550, 370); +} +//! [6] + +//! [7] +QLabel *TetrixWindow::createLabel(const QString &text) +{ + QLabel *label = new QLabel(text); + label->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); + return label; +} +//! [7] + |