Spec-Zone.ru › Qt 5.9

Класс QScrollBar

Виджет QScrollBar предоставляет вертикальную или горизонтальную полосу прокрутки. Подробнее...

Заголовок: #include <QScrollBar>
qmake: QT += widgets
Наследуется от: QAbstractSlider
  • Список всех членов, включая унаследованные

Открытые функции

QScrollBar(QWidget *parent = Q_NULLPTR)
QScrollBar(Qt::Orientation orientation, QWidget *parent = Q_NULLPTR)
~QScrollBar()

Переопределённые открытые функции

virtual bool event(QEvent *event)
virtual QSize sizeHint() const
  • 21 открытая функция унаследована от QAbstractSlider
  • 214 открытых функции унаследованы от QWidget
  • 32 открытых функции унаследованы от QObject
  • 14 открытых функции унаследованы от QPaintDevice

Защищённые функции

void initStyleOption(QStyleOptionSlider *option) const

Переопределённые защищённые функции

virtual void contextMenuEvent(QContextMenuEvent *event)
virtual void hideEvent(QHideEvent *)
virtual void mouseMoveEvent(QMouseEvent *e)
virtual void mousePressEvent(QMouseEvent *e)
virtual void mouseReleaseEvent(QMouseEvent *e)
virtual void paintEvent(QPaintEvent *)
virtual void sliderChange(SliderChange change)
virtual void wheelEvent(QWheelEvent *event)
  • 8 защищённых функций унаследованы от QAbstractSlider
  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice

Дополнительные унаследованные члены

  • 11 свойств унаследовано от QAbstractSlider
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject
  • 3 открытых слотов унаследовано от QAbstractSlider
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject
  • 6 сигналов унаследовано от QAbstractSlider
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject
  • 5 статических открытых членов унаследовано от QWidget
  • 11 статических открытых членов унаследовано от QObject
  • 1 защищённый слот унаследовано от QWidget

Подробное описание

Виджет QScrollBar предоставляет вертикальную или горизонтальную полосу прокрутки.

Полоса прокрутки — это элемент управления, который позволяет пользователю получить доступ к частям документа, которые больше, чем видет, используемый для его отображения. Он предоставляет визуальное представление текущего положения пользователя в документе и размера части документа, которая отображается. Полосы прокрутки обычно оснащены другими элементами управления, которые обеспечивают более точную навигацию. Qt отображает полосы прокрутки так, как это уместно для каждой платформы.

Если вам нужно предоставить область прокрутки для другого виджета, может быть удобнее использовать класс QScrollArea, так как он предоставляет видет представления и полосы прокрутки. QScrollBar полезен, если вам нужно реализовать аналогичную функциональность для специализированных виджетов с использованием QAbstractScrollArea; например, если вы решили унаследовать QAbstractItemView. В большинстве других ситуаций, где элемент управления ползунком используется для получения значения в заданном диапазоне, класс QSlider может быть более подходящим для ваших нужд.

Полосы прокрутки обычно включают четыре отдельных элемента управления: ползунок, стрелки прокрутки и элемент управления страницей.
  • a. Ползунок обеспечивает возможность быстрого перехода к любой части документа, но не поддерживает точную навигацию в больших документах.
  • b. Стрелки прокрутки — это кнопки, которые могут использоваться для точной навигации к определенному месту в документе. Для вертикальной полосы прокрутки, подключенной к текстовому редактору, они обычно перемещают текущую позицию на одну "строку" вверх или вниз и корректируют положение ползунка на небольшое количество. В редакторах и списках "строка" может означать одну строку текста; в просмотрщике изображений — 20 пикселей.
  • c. Элемент управления страницей — это область, по которой перетаскивается ползунок (фон полосы прокрутки). Нажатие на эту область перемещает полосу прокрутки к месту нажатия на одну "страницу". Это значение обычно равно длине ползунка.

Каждая полоса прокрутки имеет значение, которое показывает, насколько ползунок удален от начала полосы прокрутки; это значение получается с помощью value() и устанавливается с помощью setValue(). Это значение всегда находится в диапазоне значений, определённых для полосы прокрутки, от minimum() до maximum() включительно. Диапазон допустимых значений может быть установлен с помощью setMinimum() и setMaximum(). При минимальном значении верхний край ползунка (для вертикальной полосы прокрутки) или левый край (для горизонтальной полосы прокрутки) будет находиться в верхней (или левой) части полосы прокрутки. При максимальном значении нижний (или правый) край ползунка будет находиться в нижней (или правой) части полосы прокрутки.

Длина ползунка обычно связана со значением шага страницы и обычно представляет собой пропорцию области документа, отображаемой в области прокрутки. Шаг страницы — это значение, на которое изменяется значение при нажатии пользователем клавиш Page Up и Page Down, и устанавливается с помощью setPageStep(). Более мелкие изменения значения, определяемые шагом строки, производятся с помощью клавиш курсора, и это значение устанавливается с помощью setSingleStep().

Обратите внимание, что диапазон используемых значений не зависит от фактического размера виджета полосы прокрутки. Вам не нужно учитывать это при выборе значений для диапазона и шага страницы.

Диапазон значений, указанный для полосы прокрутки, часто определяется по-другому, чем для QSlider, потому что необходимо учитывать длину ползунка. Если у нас есть документ с 100 строками, и мы можем отобразить только 20 строк в виджете, мы можем создать полосу прокрутки с шагом страницы 20, минимальным значением 0 и максимальным значением 80. Это даст нам полосу прокрутки с пятью "страницами".

Взаимосвязь между длиной документа, диапазоном значений, используемых в полосе прокрутки, и шагом страницы проста во многих распространённых ситуациях. Диапазон значений полосы прокрутки определяется вычитанием выбранного шага страницы из некоторого значения, представляющего длину документа. В таких случаях полезно следующее уравнение: длина документа = maximum() - minimum() + pageStep().

QScrollBar предоставляет только целочисленные диапазоны. Обратите внимание, что хотя QScrollBar обрабатывает очень большие числа, полосы прокрутки на современных экранах не могут полезно представлять диапазоны, превышающие примерно 100 000 пикселей. За этим пределом пользователю становится трудно управлять ползунком с помощью клавиатуры или мыши, а стрелки прокрутки будут иметь ограниченное применение.

ScrollBar наследует полную серию сигналов от QAbstractSlider:

  • valueChanged() излучается, когда значение полосы прокрутки изменилось. Свойство tracking() определяет, излучается ли этот сигнал во время взаимодействия пользователя.
  • rangeChanged() излучается, когда диапазон значений полосы прокрутки изменился.
  • sliderPressed() излучается, когда пользователь начинает перетаскивать ползунок.
  • sliderMoved() излучается, когда пользователь перетаскивает ползунок.
  • sliderReleased() излучается, когда пользователь отпускает ползунок.
  • actionTriggered() излучается, когда полоса прокрутки изменяется пользователем или с помощью функции triggerAction().

Полосу прокрутки можно управлять с клавиатуры, но по умолчанию у неё свойство focusPolicy() равно Qt::NoFocus. Используйте setFocusPolicy(), чтобы включить взаимодействие с полосой прокрутки с помощью клавиатуры:

  • Клавиши влево/вправо перемещают горизонтальную полосу прокрутки на один шаг.
  • Клавиши вверх/вниз перемещают вертикальную полосу прокрутки на один шаг.
  • PageUp перемещает вверх на одну страницу.
  • PageDown перемещает вниз на одну страницу.
  • Home перемещает к началу (минимуму).
  • End перемещает к концу (максимуму).

Сам ползунок можно управлять, используя функцию triggerAction() для имитации взаимодействия пользователя с элементами управления полосы прокрутки. Это полезно, если у вас много различных виджетов, использующих общий диапазон значений.

Большинство стилей GUI используют значение pageStep() для вычисления размера ползунка.

См. также QScrollArea, QSlider, QDial, QSpinBox, Руководство по разработке GUI: Полоса прокрутки и Пример с ползунками.

Документация по членам-функциям

QScrollBar::QScrollBar(QWidget *parent = Q_NULLPTR)

Конструирует вертикальную полосу прокрутки.

Аргумент parent передаётся конструктору QWidget.

Значение minimum по умолчанию равно 0, maximum — 99, с размером singleStep 1 и pageStep 10, и начальное значение value — 0.

QScrollBar::QScrollBar(Qt::Orientation orientation, QWidget *parent = Q_NULLPTR)

Конструирует полосу прокрутки с заданной ориентацией.

Аргумент parent передаётся конструктору QWidget.

Значение minimum по умолчанию равно 0, maximum — 99, с размером singleStep 1 и pageStep 10, и начальное значение value — 0.

QScrollBar::~QScrollBar()

Уничтожает полосу прокрутки.

void QScrollBar::contextMenuEvent(QContextMenuEvent *event)

Переопределено из QWidget::contextMenuEvent().

bool QScrollBar::event(QEvent *event)

Переопределено из QObject::event().

void QScrollBar::hideEvent(QHideEvent *)

Переопределено из QWidget::hideEvent().

void QScrollBar::initStyleOption(QStyleOptionSlider *option) const

Инициализирует option значениями из этой QScrollBar. Этот метод полезен для подклассов, когда им требуется QStyleOptionSlider, но они не хотят заполнять всю информацию самостоятельно.

См. также QStyleOption::initFrom().

void QScrollBar::mouseMoveEvent(QMouseEvent *e)

Переопределено из QWidget::mouseMoveEvent().

void QScrollBar::mousePressEvent(QMouseEvent *e)

Переопределено из QWidget::mousePressEvent().

void QScrollBar::mouseReleaseEvent(QMouseEvent *e)

Переопределено из QWidget::mouseReleaseEvent().

void QScrollBar::paintEvent(QPaintEvent *)

Переопределено из QWidget::paintEvent().

QSize QScrollBar::sizeHint() const

Переопределено из QWidget::sizeHint().

void QScrollBar::sliderChange(SliderChange change)

Переопределено из QAbstractSlider::sliderChange().

void QScrollBar::wheelEvent(QWheelEvent *event)

Переопределено из QWidget::wheelEvent().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qscrollbar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API