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