Spec-Zone.ru › Qt 5.12

Класс 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
  • 12 свойств унаследовано от QAbstractSpinBox
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

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
  • 30 открытых функций унаследовано от QAbstractSpinBox
  • 214 открытых функций унаследовано от QWidget
  • 31 открытых функций унаследовано от QObject
  • 14 открытых функций унаследовано от QPaintDevice

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

void setValue(double val)
  • 4 открытых слота унаследовано от QAbstractSpinBox
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject

Сигналы

void valueChanged(double d)
void valueChanged(const QString &text)
  • 1 сигнал унаследован от QAbstractSpinBox
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

Статические открытые члены

const QMetaObject staticMetaObject
  • 5 статических открытых членов унаследовано от QWidget
  • 9 статических открытых членов унаследовано от QObject

Дополнительные унаследованные члены

  • 20 защищённых функций унаследовано от QAbstractSpinBox
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice
  • 1 защищённый слот унаследован от QWidget

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

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

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

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

Примечание: QDoubleSpinBox будет округлять числа, чтобы они могли быть отображены с текущей точностью. В QDoubleSpinBox со свойством decimals, установленным в 2, вызов 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 и Пример полей спинбоксов.

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

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)
void valueChanged(const QString &text)

См. также decimals.

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

QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)

Конструирует поле ввода с минимальным значением 0,0 и максимальным значением 99,99, значением шага 1,0 и точностью 2 десятичных знака. Значение по умолчанию устанавливается в 0,00. Поле ввода имеет заданного parent.

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

[virtual] QDoubleSpinBox::~QDoubleSpinBox()

Деструктор.

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

Переопределено из QAbstractSpinBox::fixup().

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

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

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

setRange(minimum, maximum);

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

setMinimum(minimum);
setMaximum(maximum);

См. также minimum и 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().

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

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

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

connect(doubleSpinBox, QOverload<double>::of(&QDoubleSpinBox::valueChanged),
    [=](double d){ /* ... */ });

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

[signal] void QDoubleSpinBox::valueChanged(const QString &text)

Это перегруженная функция.

Новое значение передаётся в text с prefix() и suffix().

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

connect(doubleSpinBox, QOverload<const QString &>::of(&QDoubleSpinBox::valueChanged),
    [=](const QString &text){ /* ... */ });

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

[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.12/qdoublespinbox.html

Spec-Zone.ru

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