Класс 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, поведение QDial аналогично поведению ползунка. Когда wrapping() имеет значение false (по умолчанию), то никакой реальной разницы между ползунком и QDial нет. Оба элемента используют те же сигналы, слоты и члены функций. Выбор зависит от ожиданий ваших пользователей и типа приложения.
QDial изначально непрерывно излучает сигналы valueChanged() во время перемещения ползунка; можно заставить его реже излучать этот сигнал, отключив свойство tracking. Сигнал sliderMoved() излучается непрерывно, даже если отслеживание отключено.
QDial также излучает сигналы sliderPressed() и sliderReleased() при нажатии и отпускании кнопки мыши. Обратите внимание, что значение QDial может измениться без излучения этих сигналов, так как для изменения значения также могут использоваться клавиатура и колесо.
В отличие от ползунка, QDial пытается нарисовать «приемлемое» количество рисок, а не по одной на каждый шаг. Если возможно, количество рисок составляет одну на шаг, но если для отображения каждой риски недостаточно пикселей, QDial пропустит риски, чтобы отобразить равномерный набор (например, отображая каждую вторую или третью риску).
Как и ползунок, QDial предоставляет доступ к функции setValue() QAbstractSlider в качестве слота.
Интерфейс QDial для работы с клавиатурой довольно прост: клавиши влево/вверх и вправо/вниз корректируют значение QDial с помощью определенного singleStep, Page Up и Page Down — с помощью определенного pageStep, а клавиши Home и End устанавливают значение соответственно на минимальное и максимальное значения minimum и maximum.
Если для изменения значения QDial используется колесо мыши, значение приращения определяется как меньшее из значений 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.14/qdial.html