Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# Range controls

This examples shows various types of range controls that are supported by Qt: dials, spin boxes and sliders.

Header file:

    /****************************************************************************
    ** $Id: qt/rangecontrols.h   3.3.8   edited Jan 11 14:37 $
    **
    ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
    **
    ** This file is part of an example program for Qt.  This example
    ** program may be used, distributed and modified without limitation.
    **
    *****************************************************************************/

    #ifndef RANGECONTROLS_H
    #define RANGECONTROLS_H

    #include <qvbox.h>

    class QCheckBox;

    class RangeControls : public QVBox
    {
        Q_OBJECT

    public:
        RangeControls( QWidget *parent = 0, const char *name = 0 );

    private:
        QCheckBox *notches, *wrapping;
    };

    #endif

Implementation:

    /****************************************************************************
    ** $Id: qt/rangecontrols.cpp   3.3.8   edited Jan 11 14:37 $
    **
    ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
    **
    ** This file is part of an example program for Qt.  This example
    ** program may be used, distributed and modified without limitation.
    **
    *****************************************************************************/

    #include "rangecontrols.h"

    #include <qhbox.h>
    #include <qlcdnumber.h>
    #include <qspinbox.h>
    #include <qlabel.h>
    #include <qstring.h>
    #include <qslider.h>
    #include <qcheckbox.h>

    #include <limits.h>

    RangeControls::RangeControls( QWidget *parent, const char *name )
        : QVBox( parent, name )
    {
        QHBox *row1 = new QHBox( this );

        QVBox *cell2 = new QVBox( row1 );
        cell2->setMargin( 10 );
        cell2->setFrameStyle( QFrame::WinPanel | QFrame::Sunken );

        (void)new QWidget( cell2 );

        QLabel *label1 = new QLabel( QString( "Enter a value between\n%1 and %2:" ).arg( -INT_MAX ).arg( INT_MAX ), cell2 );
        label1->setMaximumHeight( label1->sizeHint().height() );
        QSpinBox *sb1 = new QSpinBox( -INT_MAX, INT_MAX, 1, cell2 );
        sb1->setValue( 0 );

        QLabel *label2 = new QLabel( "Enter a zoom value:", cell2 );
        label2->setMaximumHeight( label2->sizeHint().height() );
        QSpinBox *sb2 = new QSpinBox( 0, 1000, 10, cell2 );
        sb2->setSuffix( " %" );
        sb2->setSpecialValueText( "Automatic" );

        QLabel *label3 = new QLabel( "Enter a price:", cell2 );
        label3->setMaximumHeight( label3->sizeHint().height() );
        QSpinBox *sb3 = new QSpinBox( 0, INT_MAX, 1, cell2 );
        sb3->setPrefix( "$" );
        sb3->setValue( 355 );

        (void)new QWidget( cell2 );

        QHBox *row2 = new QHBox( this );

        QVBox *cell3 = new QVBox( row2 );
        cell3->setMargin( 10 );
        cell3->setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
        QSlider *hslider = new QSlider( 0, 64, 1, 33, Qt::Horizontal, cell3, "horizontal_s" );
        QLCDNumber *lcd2 = new QLCDNumber( 2, cell3 );
        lcd2->display( 33 );
        lcd2->setSegmentStyle( QLCDNumber::Filled );
        connect( hslider, SIGNAL( valueChanged( int ) ), lcd2, SLOT( display( int ) ) );

        QHBox *cell4 = new QHBox( row2 );
        cell4->setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
        cell4->setMargin( 10 );
        QSlider *vslider = new QSlider( 0, 64, 1, 8, Qt::Vertical, cell4 );
        QLCDNumber *lcd3 = new QLCDNumber( 3, cell4 );
        lcd3->display( 8 );
        connect( vslider, SIGNAL( valueChanged( int ) ), lcd3, SLOT( display( int ) ) );
    }

Main:

    /****************************************************************************
    ** $Id: qt/main.cpp   3.3.8   edited Jan 11 14:37 $
    **
    ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
    **
    ** This file is part of an example program for Qt.  This example
    ** program may be used, distributed and modified without limitation.
    **
    *****************************************************************************/

    #include "rangecontrols.h"
    #include <qapplication.h>

    int main( int argc, char **argv )
    {
        QApplication a( argc, argv );

        RangeControls rangecontrols;
        rangecontrols.resize( 500, 300 );
        rangecontrols.setCaption( "Qt Example - Range Control Widgets" );
        a.setMainWidget( &rangecontrols );
        rangecontrols.show();

        return a.exec();
    }

See also Examples.