На этом шаге рассмотрим класс ползунка QSlider.
Ползунок позволяет довольно комфортно выполнять настройки некоторых параметров приложения. Класс QSlider ползунка определен в заголовочном файле QSlider.
Класс QSlider содержит метод, управляющий размещением рисок (шкалы) ползунка. Риски очень важны при отображении ползунка. Они дают пользователю визуально более четкое представление о местонахождении и показывают шаг. Возможные значения, которые можно передать в метод setTickPosition(), приведены в табл. 1.
![]() |
Ползунок без рисок | |
![]() |
Отображение рисок на верхней стороне ползунка | |
![]() |
Отображение рисок на нижней стороне ползунка | |
![]() |
Отображение рисок на верхней и нижней сторонах ползунка |
Файлы приложения, демонстрирующего значения перечисления TickPosition класса QSlider можно взять здесь.
Метод setTickInterval() задает шаг рисования рисок. Не следует задавать большое количество рисок, т. к. это приведет к появлению сплошной серой линии и не принесет никакой пользы.
Окно приложения, изображенное на рис. 1, содержит виджеты ползунка и надписи, причем текст надписи изменяется в зависимости от положения ползунка.

Рис.1. Пример работы ползунка
В листинге приводится текст файла приложения, окно которого показано на рис. 1:
#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QSlider>
#include <QLabel>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
app.setApplicationDisplayName("Ползунок");
QWidget wgt;
//создаем виджет ползунка
QSlider* ps1 = new QSlider(Qt::Vertical);
//устнавливаем диапазон значений
ps1->setRange(0, 9);
//устанавливаем шаг страницы
ps1->setPageStep(1);
//задаем стартовое значение
ps1->setValue(2);
//задаем шаг для рисования рисок
ps1->setTickInterval(2);
//установим риски снизу и сверху
ps1->setTickPosition(QSlider::TicksBothSides);
//создаем надписи
QLabel *l1=new QLabel ("");
l1->setAlignment(Qt::AlignCenter);
l1->setFrameStyle(QFrame::Panel|QFrame::Plain);
QLabel *l=new QLabel ("2");
l->setAlignment(Qt::AlignCenter);
l->setFrameStyle(QFrame::Panel|QFrame::Plain);
//методом connect() сигнал ползунка
//valueChanged(int) соединяется со слотом
//надписи setNum(int)
QObject::connect(ps1, SIGNAL(valueChanged(int)),l, SLOT(setNum(int)));
//выполняется размещение элементов на поверхности
//виджета wgt при помощи горизонтальной компоновки
QHBoxLayout* phbxL = new QHBoxLayout;
phbxL->setMargin(2);
phbxL->setSpacing(7);
phbxL->addWidget(l1);
phbxL->addWidget(ps1);
phbxL->addWidget(l);
wgt.setLayout(phbxL);
wgt.show();
return app.exec();
}
Файлы приложения можно взять здесь.
На следующем шаге рассмотрим полосы прокрутки.