/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at http://www.qtsoftware.com/contact. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include "slidersgroup.h" #include "window.h" //! [0] Window::Window() { horizontalSliders = new SlidersGroup(Qt::Horizontal, tr("Horizontal")); verticalSliders = new SlidersGroup(Qt::Vertical, tr("Vertical")); stackedWidget = new QStackedWidget; stackedWidget->addWidget(horizontalSliders); stackedWidget->addWidget(verticalSliders); createControls(tr("Controls")); //! [0] //! [1] connect(horizontalSliders, SIGNAL(valueChanged(int)), //! [1] //! [2] verticalSliders, SLOT(setValue(int))); connect(verticalSliders, SIGNAL(valueChanged(int)), valueSpinBox, SLOT(setValue(int))); connect(valueSpinBox, SIGNAL(valueChanged(int)), horizontalSliders, SLOT(setValue(int))); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(controlsGroup); layout->addWidget(stackedWidget); setLayout(layout); minimumSpinBox->setValue(0); maximumSpinBox->setValue(20); valueSpinBox->setValue(5); setWindowTitle(tr("Sliders")); } //! [2] //! [3] void Window::createControls(const QString &title) //! [3] //! [4] { controlsGroup = new QGroupBox(title); minimumLabel = new QLabel(tr("Minimum value:")); maximumLabel = new QLabel(tr("Maximum value:")); valueLabel = new QLabel(tr("Current value:")); invertedAppearance = new QCheckBox(tr("Inverted appearance")); invertedKeyBindings = new QCheckBox(tr("Inverted key bindings")); //! [4] //! [5] minimumSpinBox = new QSpinBox; //! [5] //! [6] minimumSpinBox->setRange(-100, 100); minimumSpinBox->setSingleStep(1); maximumSpinBox = new QSpinBox; maximumSpinBox->setRange(-100, 100); maximumSpinBox->setSingleStep(1); valueSpinBox = new QSpinBox; valueSpinBox->setRange(-100, 100); valueSpinBox->setSingleStep(1); orientationCombo = new QComboBox; orientationCombo->addItem(tr("Horizontal slider-like widgets")); orientationCombo->addItem(tr("Vertical slider-like widgets")); //! [6] //! [7] connect(orientationCombo, SIGNAL(activated(int)), //! [7] //! [8] stackedWidget, SLOT(setCurrentIndex(int))); connect(minimumSpinBox, SIGNAL(valueChanged(int)), horizontalSliders, SLOT(setMinimum(int))); connect(minimumSpinBox, SIGNAL(valueChanged(int)), verticalSliders, SLOT(setMinimum(int))); connect(maximumSpinBox, SIGNAL(valueChanged(int)), horizontalSliders, SLOT(setMaximum(int))); connect(maximumSpinBox, SIGNAL(valueChanged(int)), verticalSliders, SLOT(setMaximum(int))); connect(invertedAppearance, SIGNAL(toggled(bool)), horizontalSliders, SLOT(invertAppearance(bool))); connect(invertedAppearance, SIGNAL(toggled(bool)), verticalSliders, SLOT(invertAppearance(bool))); connect(invertedKeyBindings, SIGNAL(toggled(bool)), horizontalSliders, SLOT(invertKeyBindings(bool))); connect(invertedKeyBindings, SIGNAL(toggled(bool)), verticalSliders, SLOT(invertKeyBindings(bool))); QGridLayout *controlsLayout = new QGridLayout; controlsLayout->addWidget(minimumLabel, 0, 0); controlsLayout->addWidget(maximumLabel, 1, 0); controlsLayout->addWidget(valueLabel, 2, 0); controlsLayout->addWidget(minimumSpinBox, 0, 1); controlsLayout->addWidget(maximumSpinBox, 1, 1); controlsLayout->addWidget(valueSpinBox, 2, 1); controlsLayout->addWidget(invertedAppearance, 0, 2); controlsLayout->addWidget(invertedKeyBindings, 1, 2); controlsLayout->addWidget(orientationCombo, 3, 0, 1, 3); controlsGroup->setLayout(controlsLayout); } //! [8]