Класс QDial
Класс QDial предоставляет элемент управления диапазоном с закругленной шкалой (например, спидометр или потенциометр). Подробнее...
| Заголовок: | #include <QDial> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| 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) |
Защищённые функции
| virtual 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 (по умолчанию), никакой реальной разницы между ползунком и регулятором нет. Они оба используют одни и те же сигналы, слоты и функции-члены. Какой из них использовать зависит от ожиданий ваших пользователей и типа приложения.
Вначале регулятор непрерывно посылает сигналы valueChanged(), пока ползунок перемещается; вы можете сделать это реже, отключив свойство tracking. Сигнал sliderMoved() генерируется непрерывно, даже когда отслеживание отключено.
Регулятор также генерирует сигналы sliderPressed() и sliderReleased(), когда нажата и отпущена кнопка мыши. Обратите внимание, что значение регулятора может изменяться без генерации этих сигналов, поскольку значение можно изменять с помощью клавиатуры и колеса мыши.
В отличие от ползунка, QDial пытается нарисовать «красивое» количество рисок, а не одну на каждый шаг. Если возможно, количество рисок равно одному на каждый шаг, но если нет достаточно пикселей для отображения каждой риски, QDial пропустит риски, чтобы попытаться нарисовать равномерный набор (например, рисуя каждую вторую или третью риску).
Как и ползунок, регулятор предоставляет функцию setValue() QAbstractSlider в качестве слота.
Клавишная навигация регулятора довольно проста: клавиши со стрелками влево/вверх и вправо/вниз изменяют значение регулятора на определенный singleStep, Page Up и Page Down — на определенный pageStep, а клавиши Home и End устанавливают значение на определённые минимальные и максимальные значения.
Если вы используете колесо мыши для изменения значения регулятора, значение приращения определяется меньшим значением wheelScrollLines, умноженным на singleStep, и pageStep.
См. также QScrollBar, QSpinBox, QSlider, Руководство по проектированию пользовательского интерфейса: ползунок и Пример ползунков.
Документация свойств
[read-only] notchSize : const int
Это свойство хранит текущий размер насечки.
Размер насечки задается в единицах управления диапазоном, а не в пикселях, и вычисляется как кратное значению singleStep(), что приводит к размеру насечки на экране, близкому к notchTarget().
Функции доступа:
| 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).
[virtual 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-6.2/qdial.html