Класс QDoubleSpinBox
Класс QDoubleSpinBox предоставляет виджет спин-бокса, принимающий значения типа double. Подробнее...
| Заголовок: | #include <QDoubleSpinBox> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractSpinBox |
Свойства
|
- 12 свойств унаследовано от QAbstractSpinBox
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QDoubleSpinBox(QWidget *parent = Q_NULLPTR) | |
| ~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 | setSuffix(const QString &suffix) |
| double | singleStep() 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
- 32 открытых функции унаследовано от 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
Дополнительные унаследованные члены
- 5 статических открытых членов унаследовано от QWidget
- 11 статических открытых членов унаследовано от 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) |
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 = Q_NULLPTR)
Конструирует поле ввода с минимальным значением 0.0 и максимальным значением 99.99, значением шага 1.0 и точностью 2 десятичных знака. Значение по умолчанию равно 0.00. Поле ввода имеет указанного родителя parent.
См. также setMinimum(), setMaximum() и setSingleStep().
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);
[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.9/qdoublespinbox.html