Класс 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.1/qdial.html