Spec-Zone.ru › Qt 6.0

Класс QDoubleSpinBox

Класс QDoubleSpinBox предоставляет виджет спин-бокса, принимающий значения типа double. Подробнее...

Заголовок: #include <QDoubleSpinBox>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследуется от: QAbstractSpinBox
  • Список всех членов, включая унаследованные

Свойства

  • cleanText : const QString
  • decimals : int
  • maximum : double
  • minimum : double
  • prefix : QString
  • singleStep : double
  • stepType : StepType
  • suffix : QString
  • value : double

Открытые функции

QDoubleSpinBox(QWidget *parent = nullptr)
virtual ~QDoubleSpinBox()
QString cleanText() const
int decimals() const
double maximum() const
double minimum() const
QString prefix() const
void setDecimals(int prec)
void setMaximum(double max)
void setMinimum(double min)
void setPrefix(const QString &prefix)
void setRange(double minimum, double maximum)
void setSingleStep(double val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
double singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
virtual QString textFromValue(double value) const
double value() const
virtual double valueFromText(const QString &text) const

Переопределённые открытые функции

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

Открытые слоты

void setValue(double val)

Сигналы

void textChanged(const QString &text)
void valueChanged(double d)

Подробное описание

QDoubleSpinBox позволяет пользователю выбирать значение, нажимая на кнопки «вверх» и «вниз» или нажимая клавиши «Вверх» и «Вниз» на клавиатуре, чтобы увеличить или уменьшить текущее отображаемое значение. Пользователь также может ввести значение вручную. Поле ввода поддерживает значения типа double, но может быть расширено для использования различных строк с помощью validate(), textFromValue() и valueFromText().

Каждый раз, когда значение изменяется, QDoubleSpinBox излучает сигналы valueChanged() и textChanged(), при этом первый предоставляет double, а второй — QString. Сигнал textChanged() предоставляет значение с prefix() и suffix(). Текущее значение можно получить с помощью value() и установить с помощью setValue().

Примечание: QDoubleSpinBox будет округлять числа, чтобы они могли отображаться с текущей точностью. В QDoubleSpinBox с двумя десятичными знаками вызов setValue(2.555) приведет к тому, что value() вернёт 2.56.

Нажатие кнопок «вверх» и «вниз» или использование клавиш ускорителя «Вверх» и «Вниз» увеличит или уменьшит текущее значение на величину singleStep(). Если вы хотите изменить это поведение, вы можете переопределить виртуальную функцию stepBy(). Минимальное и максимальное значение и шаг могут быть установлены одним из конструкторов и изменены позже с помощью setMinimum(), setMaximum() и setSingleStep(). Поле ввода имеет точность по умолчанию в 2 десятичных знака, но это можно изменить с помощью setDecimals().

Большинство полей ввода имеют направление, но QDoubleSpinBox также может работать как поле ввода с циклическим проходом, т.е. если диапазон составляет 0.0-99.9, а текущее значение — 99.9, нажатие «вверх» даст 0, если wrapping() установлено в true. Используйте setWrapping(), если вам нужно циклическое поведение.

Отображаемое значение может быть префикс и суффикс с произвольными строками, указывающими, например, валюту или единицу измерения. См. setPrefix() и setSuffix(). Текст в поле ввода извлекается с помощью text() (который включает любые prefix() и suffix()), или с помощью cleanText() (в котором нет prefix(), нет suffix() и нет начальных или конечных пробелов).

Часто желательно предоставить пользователю специальный (часто по умолчанию) выбор в дополнение к диапазону числовых значений. См. setSpecialValueText() для того, как сделать это с помощью QDoubleSpinBox.

Примечание: Отображаемое значение QDoubleSpinBox ограничено 18 символами в дополнение к возможному префиксу и суффиксу. Это ограничение используется для обеспечения работоспособности поля ввода с двойной точкой даже с чрезвычайно большими значениями.

См. также QSpinBox, QDateTimeEdit, QSlider и Пример полей ввода.

Документация по свойствам

[read-only] cleanText : const QString

Это свойство содержит текст поля ввода, исключая любые префиксы, суффиксы или ведущие и хвостовые пробелы.

Функции доступа:

QString cleanText() const

См. также text, QDoubleSpinBox::prefix и QDoubleSpinBox::suffix.

decimals : int

Это свойство содержит точность поля ввода в десятичных разрядах.

Устанавливает количество десятичных знаков, которое поле ввода будет использовать для отображения и интерпретации чисел с плавающей точкой.

Предупреждение: Максимальное значение для decimals равно DBL_MAX_10_EXP + DBL_DIG (т.е. 323), из-за ограничений типа double.

Примечание: Максимальное, минимальное и текущее значение могут измениться в результате изменения этого свойства.

Функции доступа:

int decimals() const
void setDecimals(int prec)

maximum : double

Это свойство содержит максимальное значение поля ввода.

При установке этого свойства свойство minimum корректируется при необходимости, чтобы диапазон оставался допустимым.

По умолчанию максимальное значение равно 99.99.

Примечание: Максимальное значение будет округлено в соответствии со свойством decimals.

Функции доступа:

double maximum() const
void setMaximum(double max)

См. также decimals и setRange().

minimum : double

Это свойство содержит минимальное значение поля ввода.

При установке этого свойства свойство maximum корректируется при необходимости, чтобы диапазон оставался допустимым.

По умолчанию минимальное значение равно 0.0.

Примечание: Минимальное значение будет округлено в соответствии со свойством decimals.

Функции доступа:

double minimum() const
void setMinimum(double min)

См. также decimals, setRange() и specialValueText.

prefix : QString

Это свойство содержит префикс поля ввода.

Префикс добавляется в начало отображаемого значения. Обычно используется для отображения единиц измерения или знаков валюты. Например:

spinbox->setPrefix("$");

Чтобы отключить отображение префикса, установите это свойство в пустую строку. По умолчанию префикс отсутствует. Префикс не отображается, когда value() == minimum() и установлено specialValueText().

Если префикс не задан, prefix() возвращает пустую строку.

Функции доступа:

QString prefix() const
void setPrefix(const QString &prefix)

См. также suffix(), setSuffix(), specialValueText() и setSpecialValueText().

singleStep : double

Это свойство содержит значение шага.

Когда пользователь использует стрелки для изменения значения поля ввода, значение увеличивается/уменьшается на величину singleStep. Значение по умолчанию равно 1.0. Установка singleStep со значением меньше 0 ничего не делает.

Функции доступа:

double singleStep() const
void setSingleStep(double val)

stepType : StepType

Это свойство содержит тип шага.

Тип шага может быть шагом или адаптивным десятичным шагом.

Функции доступа:

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

Это свойство содержит суффикс поля ввода.

Суффикс добавляется в конец отображаемого значения. Обычно используется для отображения единиц измерения или знаков валюты. Например:

spinbox->setSuffix(" km");

Чтобы отключить отображение суффикса, установите это свойство в пустую строку. По умолчанию суффикс отсутствует. Суффикс не отображается для minimum(), если specialValueText() задан.

Если суффикс не задан, suffix() возвращает пустую строку.

Функции доступа:

QString suffix() const
void setSuffix(const QString &suffix)

См. также prefix(), setPrefix(), specialValueText() и setSpecialValueText().

value : double

Это свойство содержит значение поля ввода.

setValue() будет испускать valueChanged(), если новое значение отличается от старого. Свойство value имеет второй сигналом уведомления, который включает префикс и суффикс поля ввода.

Примечание: Значение будет округлено для отображения с текущими настройками decimals.

Функции доступа:

double value() const
void setValue(double val)

Сигнал уведомления:

void valueChanged(double d)

См. также decimals.

Документация по функциям-членам

QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)

Конструирует поле ввода с минимальным значением 0.0 и максимальным значением 99.99, значением шага 1.0 и точностью 2 десятичных знака. Значение по умолчанию равно 0.00. Поле ввода имеет указанного parent.

См. также setMinimum(), setMaximum() и setSingleStep().

[signal, since 5.14] void QDoubleSpinBox::textChanged(const QString &text)

Этот сигнал испускается всякий раз, когда текст поля ввода изменяется. Новый текст передается в text с prefix() и suffix().

Эта функция была введена в Qt 5.14.

[signal] void QDoubleSpinBox::valueChanged(double d)

Этот сигнал испускается всякий раз, когда значение поля ввода изменяется. Новое значение передается в d.

Примечание: Сигнал уведомления для свойства value.

[virtual] QDoubleSpinBox::~QDoubleSpinBox()

Деструктор.

[override virtual] void QDoubleSpinBox::fixup(QString &input) const

Переопределяет: QAbstractSpinBox::fixup(QString &input) const.

void QDoubleSpinBox::setRange(double minimum, double maximum)

Функция для удобства установки минимального и максимального значений с помощью одного вызова.

Примечание: Максимальные и минимальные значения будут округлено в соответствии со свойством decimals.

setRange(minimum, maximum);

эквивалентно:

setMinimum(minimum);
setMaximum(maximum);

См. также minimum и maximum.

[since 5.12] void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

Устанавливает тип шага для спин-бокса на stepType, который представляет собой одиночный шаг или адаптивный десятичный шаг.

Адаптивный десятичный шаг означает, что размер шага будет постоянно корректироваться до одной степени десяти ниже текущего значения value. Таким образом, когда значение равно 1100, шаг устанавливается в 100, а увеличение на один шаг увеличивает его до 1200. Для 1200 увеличение на один шаг приводит к значению 1300. Для отрицательных значений уменьшение на один шаг от -1100 приводит к -1200.

Он также работает с любыми десятичными значениями, например, 0,041 увеличивается до 0,042 при увеличении на один шаг.

Направление шага учитывается для обработки крайних случаев, чтобы уменьшение шага от 100 приводило к значению 99, а не к 90. Таким образом, увеличение на один шаг, за которым следует уменьшение на один шаг (или наоборот) всегда приводит к исходному значению; 99 -> 100 -> 99.

Установка этого значения заставит спин-бокс игнорировать значение singleStep, хотя оно сохраняется, чтобы singleStep вступил в силу, если адаптивный десятичный шаг будет позже отключен.

Примечание: Функция-сеттер для свойства stepType.

Эта функция была добавлена в Qt 5.12.

См. также stepType().

[virtual] QString QDoubleSpinBox::textFromValue(double value) const

Эта виртуальная функция используется спин-боксом всякий раз, когда ему нужно отобразить заданное значение value. Стандартная реализация возвращает строку, содержащую value, напечатанное с использованием QWidget::locale().toString(value, QLatin1Char('f'), decimals()) и удалит разделитель тысяч, если setGroupSeparatorShown() не установлен. Переопределения могут возвращать что угодно.

Примечание: QDoubleSpinBox не вызывает эту функцию для specialValueText(), и ни prefix(), ни suffix() не должны включаться в возвращаемое значение.

Если вы переопределяете эту функцию, вам также может потребоваться переопределить valueFromText().

См. также valueFromText() и QLocale::groupSeparator().

[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const

Переопределяет: QAbstractSpinBox::validate(QString &input, int &pos) const.

[virtual] double QDoubleSpinBox::valueFromText(const QString &text) const

Эта виртуальная функция используется спин-боксом всякий раз, когда ему нужно интерпретировать text, введённую пользователем, как значение.

Подклассы, которым нужно отображать значения спин-бокса нечисловым способом, должны переопределить эту функцию.

Примечание: QDoubleSpinBox обрабатывает specialValueText() отдельно; эта функция касается только других значений.

См. также textFromValue() и validate().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qdoublespinbox.html

Spec-Zone.ru

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