Spec-Zone.ru › Qt

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API