Класс QScrollBar

   
На этом шаге рассмотрим класс виджета полосы прокрутки 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();
}

   
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий