Класс 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 пропустит риски, чтобы попытаться отобразить равномерный набор (например, отображая каждую вторую или третью риску).
Как и ползунок, диалу доступна функция QAbstractSlider setValue() в качестве слота.
Интерфейс клавиатуры диала довольно прост: клавиши влево/вверх и вправо/вниз изменяют значение диала на определенный шаг singleStep, клавиши Page Up и Page Down — на определенный шаг pageStep, а клавиши Home и End устанавливают значение на минимальное и максимальное значения, заданные соответственно.
При использовании колеса мыши для изменения значения диала величина приращения определяется меньшим из значений 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.
[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.
[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.15/qdial.html