Класс QDial
Класс QDial предоставляет округлое средство управления диапазоном (например, спидометр или потенциометр). Подробнее...
| Заголовок: | #include <QDial> |
| qmake: | QT += widgets |
| Наследует: | QAbstractSlider |
Свойства
- notchSize : const int
- notchTarget : qreal
- notchesVisible : bool
- wrapping : bool
Открытые функции
| QDial(QWidget *parent = nullptr) | |
| virtual | ~QDial() |
| int | notchSize() const |
| qreal | notchTarget() const |
| bool | notchesVisible() const |
| void | setNotchTarget(double target) |
| bool | wrapping() const |
Переопределенные открытые функции
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Открытые слоты
| void | setNotchesVisible(bool visible) |
| void | setWrapping(bool on) |
Защищенные функции
| void | initStyleOption(QStyleOptionSlider *option) const |
Переопределенные защищенные функции
| virtual bool | event(QEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *pe) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | sliderChange(QAbstractSlider::SliderChange change) override |
Подробное описание
QDial используется, когда пользователю необходимо контролировать значение в заданном программой диапазоне, и этот диапазон либо циклический (например, с углами, измеряемыми от 0 до 359 градусов), либо макет диалога требует прямоугольного виджета.
Поскольку QDial наследуется от QAbstractSlider, поведение циферблата аналогично поведению ползунка slider. Когда wrapping() равно false (по умолчанию), между ползунком и циферблатом нет реальной разницы. Они оба используют те же сигналы, слоты и члены функций. Какой из них использовать, зависит от ожиданий ваших пользователей и от типа приложения.
Циферблат изначально непрерывно излучает сигналы valueChanged() во время перемещения ползунка; вы можете сделать его менее частым путем отключения свойства tracking. Сигнал sliderMoved() излучается непрерывно, даже когда отслеживание отключено.
Циферблат также излучает сигналы sliderPressed() и sliderReleased() при нажатии и отпускании кнопки мыши. Обратите внимание, что значение циферблата может измениться, не вызывая этих сигналов, поскольку для изменения значения также могут использоваться клавиатура и колесо мыши.
В отличие от ползунка, QDial пытается нарисовать «красивое» количество рисок, а не одну на каждый шаг. Если возможно, количество нарисованных рисок равно одному на каждый шаг, но если для отображения каждой не хватает пикселей, QDial пропустит риски, чтобы попытаться создать равномерный набор (например, нарисовав каждую вторую или третью риску).
Как и ползунок, циферблат делает функцию setValue() QAbstractSlider доступной как слот.
Интерфейс клавиатуры циферблата достаточно прост: клавиши влево/вверх и вправо/вниз изменяют значение циферблата на заданный singleStep, Page Up и Page Down — на заданный pageStep, а клавиши Home и End устанавливают значение на определенные minimum и maximum значения.
Если вы используете колесо мыши для изменения значения циферблата, значение приращения определяется меньшим значением wheelScrollLines умноженным на singleStep и pageStep.
См. также QScrollBar, QSpinBox, QSlider, Руководство по разработке графического интерфейса пользователя: Ползунок и Пример ползунков.
Документация свойств
notchSize : const int
Это свойство содержит текущий размер выемки.
Размер выемки указан в единицах управления диапазоном, а не в пикселях, и, если возможно, он является кратным значению singleStep(), что приводит к размеру выемки на экране, близкому к значению notchTarget().
По умолчанию это свойство имеет значение 1.
Функции доступа:
| int | notchSize() const |
См. также notchTarget() и singleStep().
notchTarget : qreal
Это свойство содержит целевое количество пикселей между выемками.
Целевое значение выемки — это количество пикселей, которые QDial пытается разместить между каждой выемкой.
Фактический размер может отличаться от целевого размера.
Целевое значение выемки по умолчанию — 3,7 пикселей.
Функции доступа:
| qreal | notchTarget() const |
| void | setNotchTarget(double target) |
notchesVisible : bool
Это свойство указывает, отображаются ли выемки.
Если свойство равно true, вокруг циферблата рисуется ряд выемок, чтобы указать диапазон доступных значений; в противном случае выемки не отображаются.
По умолчанию это свойство отключено.
Функции доступа:
| bool | notchesVisible() const |
| void | setNotchesVisible(bool visible) |
wrapping : bool
Это свойство указывает, включена ли функция перематывания.
Если значение равно true, функция перематывания включена; в противном случае внизу циферблата вставляется некоторый промежуток для разделения концов диапазона допустимых значений.
Если функция включена, стрелка может быть ориентирована под любым углом на циферблате. Если функция отключена, стрелка будет ограничена верхней частью циферблата; если она повернётся в пространство внизу циферблата, она будет привязана к ближайшему концу допустимого диапазона значений.
По умолчанию это свойство равно false.
Функции доступа:
| bool | wrapping() const |
| void | setWrapping(bool on) |
Документация функций-членов
QDial::QDial(QWidget *parent = nullptr)
Конструирует циферблат.
Аргумент parent передаётся конструктору QAbstractSlider.
[virtual] QDial::~QDial()
Удаляет циферблат.
[override virtual protected] bool QDial::event(QEvent *e)
Переопределяет: QAbstractSlider::event(QEvent *e).
[protected] void QDial::initStyleOption(QStyleOptionSlider *option) const
Инициализирует option значениями из этого QDial. Этот метод полезен для подклассов, когда им требуется QStyleOptionSlider, но они не хотят сами заполнять всю информацию.
См. также QStyleOption::initFrom().
[override virtual] QSize QDial::minimumSizeHint() const
Переопределяет: QWidget::minimumSizeHint() const.
[override virtual protected] void QDial::mouseMoveEvent(QMouseEvent *e)
Переопределяет: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QDial::mousePressEvent(QMouseEvent *e)
Переопределяет: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QDial::mouseReleaseEvent(QMouseEvent *e)
Переопределяет: QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected] void QDial::paintEvent(QPaintEvent *pe)
Переопределяет: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected] void QDial::resizeEvent(QResizeEvent *e)
Переопределяет: QWidget::resizeEvent(QResizeEvent *event).
[override virtual] QSize QDial::sizeHint() const
Переопределяет: QWidget::sizeHint() const.
[override virtual protected] void QDial::sliderChange(QAbstractSlider::SliderChange change)
Переопределяет: QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qdial.html