Spec-Zone.ru › Qt 5.14

Класс QDoubleSpinBox

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

Заголовок: #include <QDoubleSpinBox>
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 позволяет пользователю выбирать значение, нажимая на кнопки вверх и вниз или используя клавиши со стрелками вверх и вниз на клавиатуре для увеличения или уменьшения текущего отображаемого значения. Пользователь также может ввести значение вручную. Поле spin box поддерживает двойные значения, но может быть расширено для использования различных строк с помощью validate(), textFromValue() и valueFromText().

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

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

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

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

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

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

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

См. также QSpinBox, QDateTimeEdit, QSlider и Пример использования полей spin box.

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

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] void QDoubleSpinBox::textChanged(const QString &text)

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

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

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

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

Примечание: Сигнал valueChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции Qt предоставляет удобный помощник для получения указателя функции, как показано в этом примере:

connect(doubleSpinBox, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
    [=](double 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);

См. также минимальное и максимальное.

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 вступил в силу, если адаптивный десятичный шаг позже будет выключен.

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

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

См. также 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-5.14/qdoublespinbox.html

Spec-Zone.ru

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