A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQSlider</id>
		<title>C++/Qt/QSlider - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQSlider"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QSlider&amp;action=history"/>
		<updated>2026-04-18T12:11:55Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QSlider&amp;diff=976&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QSlider&amp;diff=976&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QSlider&amp;diff=977&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QSlider&amp;diff=977&amp;oldid=prev"/>
				<updated>2010-05-25T10:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Add slider to window==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QHBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QSpinBox&amp;gt;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    QWidget *window = new QWidget;&lt;br /&gt;
    window-&amp;gt;setWindowTitle(&amp;quot;Enter Your Age&amp;quot;);&lt;br /&gt;
    QSpinBox *spinBox = new QSpinBox;&lt;br /&gt;
    QSlider *slider = new QSlider(Qt::Horizontal);&lt;br /&gt;
    spinBox-&amp;gt;setRange(0, 130);&lt;br /&gt;
    slider-&amp;gt;setRange(0, 130);&lt;br /&gt;
    QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));&lt;br /&gt;
    QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));&lt;br /&gt;
    spinBox-&amp;gt;setValue(35);&lt;br /&gt;
    QHBoxLayout *layout = new QHBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(spinBox);&lt;br /&gt;
    layout-&amp;gt;addWidget(slider);&lt;br /&gt;
    window-&amp;gt;setLayout(layout);&lt;br /&gt;
    window-&amp;gt;show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add value change signal for slider==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QHBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QSpinBox&amp;gt;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    QWidget *window = new QWidget;&lt;br /&gt;
    window-&amp;gt;setWindowTitle(&amp;quot;Enter Your Age&amp;quot;);&lt;br /&gt;
    QSpinBox *spinBox = new QSpinBox;&lt;br /&gt;
    QSlider *slider = new QSlider(Qt::Horizontal);&lt;br /&gt;
    spinBox-&amp;gt;setRange(0, 130);&lt;br /&gt;
    slider-&amp;gt;setRange(0, 130);&lt;br /&gt;
    QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));&lt;br /&gt;
    QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));&lt;br /&gt;
    spinBox-&amp;gt;setValue(35);&lt;br /&gt;
    QHBoxLayout *layout = new QHBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(spinBox);&lt;br /&gt;
    layout-&amp;gt;addWidget(slider);&lt;br /&gt;
    window-&amp;gt;setLayout(layout);&lt;br /&gt;
    window-&amp;gt;show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set range for slider==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QHBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QSpinBox&amp;gt;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    QWidget *window = new QWidget;&lt;br /&gt;
    window-&amp;gt;setWindowTitle(&amp;quot;Enter Your Age&amp;quot;);&lt;br /&gt;
    QSpinBox *spinBox = new QSpinBox;&lt;br /&gt;
    QSlider *slider = new QSlider(Qt::Horizontal);&lt;br /&gt;
    spinBox-&amp;gt;setRange(0, 130);&lt;br /&gt;
    slider-&amp;gt;setRange(0, 130);&lt;br /&gt;
    QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));&lt;br /&gt;
    QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));&lt;br /&gt;
    spinBox-&amp;gt;setValue(35);&lt;br /&gt;
    QHBoxLayout *layout = new QHBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(spinBox);&lt;br /&gt;
    layout-&amp;gt;addWidget(slider);&lt;br /&gt;
    window-&amp;gt;setLayout(layout);&lt;br /&gt;
    window-&amp;gt;show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Slider group==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
/****************************************************************************&lt;br /&gt;
**&lt;br /&gt;
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br /&gt;
** All rights reserved.&lt;br /&gt;
** Contact: Nokia Corporation (qt-info@nokia.com)&lt;br /&gt;
**&lt;br /&gt;
** This file is part of the examples of the Qt Toolkit.&lt;br /&gt;
**&lt;br /&gt;
** $QT_BEGIN_LICENSE:LGPL$&lt;br /&gt;
** Commercial Usage&lt;br /&gt;
** Licensees holding valid Qt Commercial licenses may use this file in&lt;br /&gt;
** accordance with the Qt Commercial License Agreement provided with the&lt;br /&gt;
** Software or, alternatively, in accordance with the terms contained in&lt;br /&gt;
** a written agreement between you and Nokia.&lt;br /&gt;
**&lt;br /&gt;
** GNU Lesser General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU Lesser&lt;br /&gt;
** General Public License version 2.1 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.LGPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU Lesser General Public License version 2.1 requirements&lt;br /&gt;
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.&lt;br /&gt;
**&lt;br /&gt;
** In addition, as a special exception, Nokia gives you certain additional&lt;br /&gt;
** rights.  These rights are described in the Nokia Qt LGPL Exception&lt;br /&gt;
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.&lt;br /&gt;
**&lt;br /&gt;
** GNU General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU&lt;br /&gt;
** General Public License version 3.0 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.GPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU General Public License version 3.0 requirements will be&lt;br /&gt;
** met: http://www.gnu.org/copyleft/gpl.html.&lt;br /&gt;
**&lt;br /&gt;
** If you have questions regarding the use of this file, please contact&lt;br /&gt;
** Nokia at qt-info@nokia.com.&lt;br /&gt;
** $QT_END_LICENSE$&lt;br /&gt;
**&lt;br /&gt;
****************************************************************************/&lt;br /&gt;
#ifndef SLIDERSGROUP_H&lt;br /&gt;
#define SLIDERSGROUP_H&lt;br /&gt;
#include &amp;lt;QGroupBox&amp;gt;&lt;br /&gt;
QT_BEGIN_NAMESPACE&lt;br /&gt;
class QDial;&lt;br /&gt;
class QScrollBar;&lt;br /&gt;
class QSlider;&lt;br /&gt;
QT_END_NAMESPACE&lt;br /&gt;
&lt;br /&gt;
class SlidersGroup : public QGroupBox&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
    SlidersGroup(Qt::Orientation orientation, const QString &amp;amp;title,&lt;br /&gt;
                 QWidget *parent = 0);&lt;br /&gt;
signals:&lt;br /&gt;
    void valueChanged(int value);&lt;br /&gt;
public slots:&lt;br /&gt;
    void setValue(int value);&lt;br /&gt;
    void setMinimum(int value);&lt;br /&gt;
    void setMaximum(int value);&lt;br /&gt;
    void invertAppearance(bool invert);&lt;br /&gt;
    void invertKeyBindings(bool invert);&lt;br /&gt;
private:&lt;br /&gt;
    QSlider *slider;&lt;br /&gt;
    QScrollBar *scrollBar;&lt;br /&gt;
    QDial *dial;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;slidersgroup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SlidersGroup::SlidersGroup(Qt::Orientation orientation, const QString &amp;amp;title,&lt;br /&gt;
                           QWidget *parent)&lt;br /&gt;
    : QGroupBox(title, parent)&lt;br /&gt;
{&lt;br /&gt;
    slider = new QSlider(orientation);&lt;br /&gt;
    slider-&amp;gt;setFocusPolicy(Qt::StrongFocus);&lt;br /&gt;
    slider-&amp;gt;setTickPosition(QSlider::TicksBothSides);&lt;br /&gt;
    slider-&amp;gt;setTickInterval(10);&lt;br /&gt;
    slider-&amp;gt;setSingleStep(1);&lt;br /&gt;
    scrollBar = new QScrollBar(orientation);&lt;br /&gt;
    scrollBar-&amp;gt;setFocusPolicy(Qt::StrongFocus);&lt;br /&gt;
    dial = new QDial;&lt;br /&gt;
    dial-&amp;gt;setFocusPolicy(Qt::StrongFocus);&lt;br /&gt;
    connect(slider, SIGNAL(valueChanged(int)), scrollBar, SLOT(setValue(int)));&lt;br /&gt;
    connect(scrollBar, SIGNAL(valueChanged(int)), dial, SLOT(setValue(int)));&lt;br /&gt;
    connect(dial, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));&lt;br /&gt;
 &lt;br /&gt;
    connect(dial, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    QBoxLayout::Direction direction;&lt;br /&gt;
 &lt;br /&gt;
    if (orientation == Qt::Horizontal)&lt;br /&gt;
        direction = QBoxLayout::TopToBottom;&lt;br /&gt;
    else&lt;br /&gt;
        direction = QBoxLayout::LeftToRight;&lt;br /&gt;
    QBoxLayout *slidersLayout = new QBoxLayout(direction);&lt;br /&gt;
    slidersLayout-&amp;gt;addWidget(slider);&lt;br /&gt;
    slidersLayout-&amp;gt;addWidget(scrollBar);&lt;br /&gt;
    slidersLayout-&amp;gt;addWidget(dial);&lt;br /&gt;
    setLayout(slidersLayout);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SlidersGroup::setValue(int value)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    slider-&amp;gt;setValue(value);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SlidersGroup::setMinimum(int value)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    slider-&amp;gt;setMinimum(value);&lt;br /&gt;
    scrollBar-&amp;gt;setMinimum(value);&lt;br /&gt;
    dial-&amp;gt;setMinimum(value);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SlidersGroup::setMaximum(int value)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    slider-&amp;gt;setMaximum(value);&lt;br /&gt;
    scrollBar-&amp;gt;setMaximum(value);&lt;br /&gt;
    dial-&amp;gt;setMaximum(value);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SlidersGroup::invertAppearance(bool invert)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    slider-&amp;gt;setInvertedAppearance(invert);&lt;br /&gt;
    scrollBar-&amp;gt;setInvertedAppearance(invert);&lt;br /&gt;
    dial-&amp;gt;setInvertedAppearance(invert);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void SlidersGroup::invertKeyBindings(bool invert)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    slider-&amp;gt;setInvertedControls(invert);&lt;br /&gt;
    scrollBar-&amp;gt;setInvertedControls(invert);&lt;br /&gt;
    dial-&amp;gt;setInvertedControls(invert);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef WINDOW_H&lt;br /&gt;
#define WINDOW_H&lt;br /&gt;
#include &amp;lt;QWidget&amp;gt;&lt;br /&gt;
QT_BEGIN_NAMESPACE&lt;br /&gt;
class QCheckBox;&lt;br /&gt;
class QComboBox;&lt;br /&gt;
class QGroupBox;&lt;br /&gt;
class QLabel;&lt;br /&gt;
class QSpinBox;&lt;br /&gt;
class QStackedWidget;&lt;br /&gt;
QT_END_NAMESPACE&lt;br /&gt;
class SlidersGroup;&lt;br /&gt;
&lt;br /&gt;
class Window : public QWidget&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
    Window();&lt;br /&gt;
private:&lt;br /&gt;
    void createControls(const QString &amp;amp;title);&lt;br /&gt;
    SlidersGroup *horizontalSliders;&lt;br /&gt;
    SlidersGroup *verticalSliders;&lt;br /&gt;
    QStackedWidget *stackedWidget;&lt;br /&gt;
    QGroupBox *controlsGroup;&lt;br /&gt;
    QLabel *minimumLabel;&lt;br /&gt;
    QLabel *maximumLabel;&lt;br /&gt;
    QLabel *valueLabel;&lt;br /&gt;
    QCheckBox *invertedAppearance;&lt;br /&gt;
    QCheckBox *invertedKeyBindings;&lt;br /&gt;
    QSpinBox *minimumSpinBox;&lt;br /&gt;
    QSpinBox *maximumSpinBox;&lt;br /&gt;
    QSpinBox *valueSpinBox;&lt;br /&gt;
    QComboBox *orientationCombo;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;slidersgroup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;window.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Window::Window()&lt;br /&gt;
{&lt;br /&gt;
    horizontalSliders = new SlidersGroup(Qt::Horizontal, tr(&amp;quot;Horizontal&amp;quot;));&lt;br /&gt;
    verticalSliders = new SlidersGroup(Qt::Vertical, tr(&amp;quot;Vertical&amp;quot;));&lt;br /&gt;
    stackedWidget = new QStackedWidget;&lt;br /&gt;
    stackedWidget-&amp;gt;addWidget(horizontalSliders);&lt;br /&gt;
    stackedWidget-&amp;gt;addWidget(verticalSliders);&lt;br /&gt;
    createControls(tr(&amp;quot;Controls&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    connect(horizontalSliders, SIGNAL(valueChanged(int)),&lt;br /&gt;
 &lt;br /&gt;
            verticalSliders, SLOT(setValue(int)));&lt;br /&gt;
    connect(verticalSliders, SIGNAL(valueChanged(int)),&lt;br /&gt;
            valueSpinBox, SLOT(setValue(int)));&lt;br /&gt;
    connect(valueSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            horizontalSliders, SLOT(setValue(int)));&lt;br /&gt;
    QHBoxLayout *layout = new QHBoxLayout;&lt;br /&gt;
    layout-&amp;gt;addWidget(controlsGroup);&lt;br /&gt;
    layout-&amp;gt;addWidget(stackedWidget);&lt;br /&gt;
    setLayout(layout);&lt;br /&gt;
    minimumSpinBox-&amp;gt;setValue(0);&lt;br /&gt;
    maximumSpinBox-&amp;gt;setValue(20);&lt;br /&gt;
    valueSpinBox-&amp;gt;setValue(5);&lt;br /&gt;
    setWindowTitle(tr(&amp;quot;Sliders&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Window::createControls(const QString &amp;amp;title)&lt;br /&gt;
 &lt;br /&gt;
{&lt;br /&gt;
    controlsGroup = new QGroupBox(title);&lt;br /&gt;
    minimumLabel = new QLabel(tr(&amp;quot;Minimum value:&amp;quot;));&lt;br /&gt;
    maximumLabel = new QLabel(tr(&amp;quot;Maximum value:&amp;quot;));&lt;br /&gt;
    valueLabel = new QLabel(tr(&amp;quot;Current value:&amp;quot;));&lt;br /&gt;
    invertedAppearance = new QCheckBox(tr(&amp;quot;Inverted appearance&amp;quot;));&lt;br /&gt;
    invertedKeyBindings = new QCheckBox(tr(&amp;quot;Inverted key bindings&amp;quot;));&lt;br /&gt;
 &lt;br /&gt;
    minimumSpinBox = new QSpinBox;&lt;br /&gt;
 &lt;br /&gt;
    minimumSpinBox-&amp;gt;setRange(-100, 100);&lt;br /&gt;
    minimumSpinBox-&amp;gt;setSingleStep(1);&lt;br /&gt;
    maximumSpinBox = new QSpinBox;&lt;br /&gt;
    maximumSpinBox-&amp;gt;setRange(-100, 100);&lt;br /&gt;
    maximumSpinBox-&amp;gt;setSingleStep(1);&lt;br /&gt;
    valueSpinBox = new QSpinBox;&lt;br /&gt;
    valueSpinBox-&amp;gt;setRange(-100, 100);&lt;br /&gt;
    valueSpinBox-&amp;gt;setSingleStep(1);&lt;br /&gt;
    orientationCombo = new QComboBox;&lt;br /&gt;
    orientationCombo-&amp;gt;addItem(tr(&amp;quot;Horizontal slider-like widgets&amp;quot;));&lt;br /&gt;
    orientationCombo-&amp;gt;addItem(tr(&amp;quot;Vertical slider-like widgets&amp;quot;));&lt;br /&gt;
 &lt;br /&gt;
    connect(orientationCombo, SIGNAL(activated(int)),&lt;br /&gt;
 &lt;br /&gt;
            stackedWidget, SLOT(setCurrentIndex(int)));&lt;br /&gt;
    connect(minimumSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            horizontalSliders, SLOT(setMinimum(int)));&lt;br /&gt;
    connect(minimumSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            verticalSliders, SLOT(setMinimum(int)));&lt;br /&gt;
    connect(maximumSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            horizontalSliders, SLOT(setMaximum(int)));&lt;br /&gt;
    connect(maximumSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            verticalSliders, SLOT(setMaximum(int)));&lt;br /&gt;
    connect(invertedAppearance, SIGNAL(toggled(bool)),&lt;br /&gt;
            horizontalSliders, SLOT(invertAppearance(bool)));&lt;br /&gt;
    connect(invertedAppearance, SIGNAL(toggled(bool)),&lt;br /&gt;
            verticalSliders, SLOT(invertAppearance(bool)));&lt;br /&gt;
    connect(invertedKeyBindings, SIGNAL(toggled(bool)),&lt;br /&gt;
            horizontalSliders, SLOT(invertKeyBindings(bool)));&lt;br /&gt;
    connect(invertedKeyBindings, SIGNAL(toggled(bool)),&lt;br /&gt;
            verticalSliders, SLOT(invertKeyBindings(bool)));&lt;br /&gt;
    QGridLayout *controlsLayout = new QGridLayout;&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(minimumLabel, 0, 0);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(maximumLabel, 1, 0);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(valueLabel, 2, 0);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(minimumSpinBox, 0, 1);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(maximumSpinBox, 1, 1);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(valueSpinBox, 2, 1);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(invertedAppearance, 0, 2);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(invertedKeyBindings, 1, 2);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(orientationCombo, 3, 0, 1, 3);&lt;br /&gt;
    controlsGroup-&amp;gt;setLayout(controlsLayout);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;quot;window.h&amp;quot;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    Window window;&lt;br /&gt;
    window.show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using QSlider to control custom component==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Foundations of Qt Development\Chapter06\circlebar\circlebar.cpp&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2006-2007, Johan Thelin&lt;br /&gt;
 * &lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 *     * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
 *       this list of conditions and the following disclaimer.&lt;br /&gt;
 *     * Redistributions in binary form must reproduce the above copyright notice,  &lt;br /&gt;
 *       this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
 *       and/or other materials provided with the distribution.&lt;br /&gt;
 *     * Neither the name of APress nor the names of its contributors &lt;br /&gt;
 *       may be used to endorse or promote products derived from this software &lt;br /&gt;
 *       without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;QPaintEvent&amp;gt;&lt;br /&gt;
#include &amp;lt;QWheelEvent&amp;gt;&lt;br /&gt;
#include &amp;lt;QPainter&amp;gt;&lt;br /&gt;
#include &amp;quot;circlebar.h&amp;quot;&lt;br /&gt;
CircleBar::CircleBar( int value, QWidget *parent ) : QWidget( parent )&lt;br /&gt;
{&lt;br /&gt;
  m_value = value;&lt;br /&gt;
  &lt;br /&gt;
  QSizePolicy policy( QSizePolicy::Preferred, QSizePolicy::Preferred );&lt;br /&gt;
  policy.setHeightForWidth( true );&lt;br /&gt;
  setSizePolicy( policy );&lt;br /&gt;
}&lt;br /&gt;
int CircleBar::heightForWidth( int width ) const&lt;br /&gt;
{&lt;br /&gt;
  return width;&lt;br /&gt;
}&lt;br /&gt;
QSize CircleBar::sizeHint() const&lt;br /&gt;
{&lt;br /&gt;
  return QSize( 100, 100 );&lt;br /&gt;
}&lt;br /&gt;
int CircleBar::value() const&lt;br /&gt;
{&lt;br /&gt;
  return m_value;&lt;br /&gt;
}&lt;br /&gt;
void CircleBar::setValue( int value )&lt;br /&gt;
{&lt;br /&gt;
  if( value &amp;lt; 0 )&lt;br /&gt;
    value = 0;&lt;br /&gt;
  &lt;br /&gt;
  if( value &amp;gt; 100 )&lt;br /&gt;
    value = 100;&lt;br /&gt;
    &lt;br /&gt;
  if( m_value == value )&lt;br /&gt;
    return;&lt;br /&gt;
    &lt;br /&gt;
  m_value = value;&lt;br /&gt;
  update();&lt;br /&gt;
  emit valueChanged( m_value );&lt;br /&gt;
}&lt;br /&gt;
void CircleBar::paintEvent( QPaintEvent *event )&lt;br /&gt;
{&lt;br /&gt;
  int radius = width()/2;&lt;br /&gt;
  double factor = m_value/100.0;&lt;br /&gt;
  &lt;br /&gt;
  QPainter p( this );&lt;br /&gt;
  p.setPen( Qt::black );&lt;br /&gt;
  p.drawEllipse( 0, 0, width()-1, width()-1 );&lt;br /&gt;
  p.setBrush( Qt::black );&lt;br /&gt;
  p.drawEllipse( int(radius*(1.0-factor)), int(radius*(1.0-factor)), int((width()-1)*factor)+1, int((width()-1)*factor)+1 );&lt;br /&gt;
}&lt;br /&gt;
void CircleBar::wheelEvent( QWheelEvent *event )&lt;br /&gt;
{&lt;br /&gt;
  event-&amp;gt;accept();&lt;br /&gt;
  setValue( value() + event-&amp;gt;delta()/20 );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Foundations of Qt Development\Chapter06\circlebar\circlebar.h&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2006-2007, Johan Thelin&lt;br /&gt;
 * &lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 *     * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
 *       this list of conditions and the following disclaimer.&lt;br /&gt;
 *     * Redistributions in binary form must reproduce the above copyright notice,  &lt;br /&gt;
 *       this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
 *       and/or other materials provided with the distribution.&lt;br /&gt;
 *     * Neither the name of APress nor the names of its contributors &lt;br /&gt;
 *       may be used to endorse or promote products derived from this software &lt;br /&gt;
 *       without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
#ifndef CIRCLEBAR_H&lt;br /&gt;
#define CIRCLEBAR_H&lt;br /&gt;
#include &amp;lt;QWidget&amp;gt;&lt;br /&gt;
class CircleBar : public QWidget&lt;br /&gt;
{&lt;br /&gt;
  Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
  CircleBar( int value = 0, QWidget *parent = 0 );&lt;br /&gt;
  &lt;br /&gt;
  int value() const;&lt;br /&gt;
  &lt;br /&gt;
  int heightForWidth( int ) const;&lt;br /&gt;
  QSize sizeHint() const;  &lt;br /&gt;
public slots:&lt;br /&gt;
  void setValue( int );&lt;br /&gt;
  &lt;br /&gt;
signals:&lt;br /&gt;
  void valueChanged( int );&lt;br /&gt;
  &lt;br /&gt;
protected:&lt;br /&gt;
  void paintEvent( QPaintEvent* );&lt;br /&gt;
  void wheelEvent( QWheelEvent* );&lt;br /&gt;
  &lt;br /&gt;
private:&lt;br /&gt;
  int m_value;&lt;br /&gt;
};&lt;br /&gt;
#endif // CIRCLEBAR_H&lt;br /&gt;
&lt;br /&gt;
Foundations of Qt Development\Chapter06\circlebar\main.cpp&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2006-2007, Johan Thelin&lt;br /&gt;
 * &lt;br /&gt;
 * All rights reserved.&lt;br /&gt;
 * &lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without modification, &lt;br /&gt;
 * are permitted provided that the following conditions are met:&lt;br /&gt;
 * &lt;br /&gt;
 *     * Redistributions of source code must retain the above copyright notice, &lt;br /&gt;
 *       this list of conditions and the following disclaimer.&lt;br /&gt;
 *     * Redistributions in binary form must reproduce the above copyright notice,  &lt;br /&gt;
 *       this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
 *     * Neither the name of APress nor the names of its contributors &lt;br /&gt;
 *       may be used to endorse or promote products derived from this software &lt;br /&gt;
 *       without specific prior written permission.&lt;br /&gt;
 * &lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
 * &amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QSlider&amp;gt;&lt;br /&gt;
#include &amp;lt;QVBoxLayout&amp;gt;&lt;br /&gt;
#include &amp;quot;circlebar.h&amp;quot;&lt;br /&gt;
int main( int argc, char **argv )&lt;br /&gt;
{&lt;br /&gt;
  QApplication app( argc, argv );&lt;br /&gt;
  &lt;br /&gt;
  QWidget base;&lt;br /&gt;
  QVBoxLayout layout( &amp;amp;base );&lt;br /&gt;
  &lt;br /&gt;
  CircleBar bar;&lt;br /&gt;
  QSlider slider( Qt::Horizontal );&lt;br /&gt;
  &lt;br /&gt;
  layout.addWidget( &amp;amp;bar );&lt;br /&gt;
  layout.addWidget( &amp;amp;slider );&lt;br /&gt;
  &lt;br /&gt;
  QObject::connect( &amp;amp;slider, SIGNAL(valueChanged(int)), &amp;amp;bar, SLOT(setValue(int)) );&lt;br /&gt;
  QObject::connect( &amp;amp;bar, SIGNAL(valueChanged(int)), &amp;amp;slider, SLOT(setValue(int)) );&lt;br /&gt;
  &lt;br /&gt;
  base.show();&lt;br /&gt;
  &lt;br /&gt;
  return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>