На этом шаге рассмотрим класс виджета полосы прокрутки QScrollBar.
Полоса прокрутки — это важная составляющая практически любого пользовательского интерфейса. Она интуитивно воспринимается пользователем, и с ее помощью отображаются текстовые или графические данные, по размерам превышающие отведенную для них область. Используя указатель текущего положения полосы прокрутки, можно перемещать данные в видимую область. Он показывает относительную позицию видимой части объекта, благодаря которой можно получить представление о размере самих данных. Класс QScrollBar является реализацией виджета полосы прокрутки. Он определен в заголовочном файле QscrollBar и не содержит никаких дополнительных методов и сигналов, расширяющих определения класса QAbstractSlider.
Отдельно полосы прокрутки используются очень редко. Они встроены в виджет QAbstractScrollArea. Поэтому если вы намерены воспользоваться классом полосы прокрутки QScrollBar, то не исключено, что лучшим вариантом может оказаться использование одного из виджетов, наследующих базовый класс для видовой прокрутки QAbstractScrollArea. У объектов, унаследованных от класса QScrollBar, можно вызвать контекстное меню с параметрами навигации по умолчанию (рис. 1).

Рис.1. Контекстное меню полосы прокрутки
Виджет полосы прокрутки имеет минимальное и максимальное значение, текущее значение и ориентацию. Перемещение указателя текущего положения осуществляется с помощью левой кнопки мыши. В качестве альтернативы можно просто нажать на кнопки стрелок, расположенных на концах полосы прокрутки. Окно приложения, показанное на рис. 2, состоит из электронного индикатора и полосы прокрутки. Значение, отображаемое электронным индикатором, изменяется в зависимости от положения указателя текущего положения.

Рис.2. Окно приложения, демонстрирующее работу полосы прокрутки
В листинге приводится текст файла приложения, окно которого показано на рис. 2:
#include <QApplication>
#include <QVBoxLayout>
#include <QWidget>
#include <QLCDNumber>
#include <QScrollBar>
int main (int argc, char** argv)
{
QApplication app(argc, argv);
app.setApplicationDisplayName("Полоса прокрутки");
QWidget wgt;
//создаются виджеты электронного индикатора (указатель plcd)
QLCDNumber* plcd = new QLCDNumber(4);
//и полосы прокрутки (указатель phsb)
QScrollBar* phsb = new QScrollBar(Qt::Horizontal);
//сигнал valueChanged() полосы прокрутки соединяется
//со слотом display() электронного индикатора,
//служащего для отображения значений целого типа,
//при помощи метода connect()
QObject::connect(phsb, SIGNAL(valueChanged(int)),plcd, SLOT(display(int)));
//виджеты электронного индикатора и полосы прокрутки
//размещаются вертикально, на поверхности виджета wgt,
//при помощи объекта класса QVBoxLayout
QVBoxLayout* pvbxLayout = new QVBoxLayout;
pvbxLayout->addWidget(plcd);
pvbxLayout->addWidget(phsb);
wgt.setLayout(pvbxLayout);
wgt.resize(250, 150);
wgt.show();
return app.exec();
} Файлы приложения можно взять здесь.
На следующем шаге рассмотрим класс QDial виджета установщика.