Класс QDoubleSpinBox
Класс QDoubleSpinBox предоставляет виджет спин-бокса, принимающий значения типа double. Подробнее...
| Заголовок: | #include <QDoubleSpinBox> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractSpinBox |
Свойства
|
- 12 свойств унаследовано от QAbstractSpinBox
- 58 свойств унаследовано от 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 |
| virtual QValidator::State | validate(QString &text, int &pos) const |
- 30 открытых функций унаследовано от QAbstractSpinBox
- 211 открытых функций унаследовано от 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
Дополнительные унаследованные члены
- 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 с десятичными знаками, установленным в 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() (который включает любой префикс() и суффикс()), или с помощью cleanText() (который не имеет префикса(), не имеет суффикса() и не имеет начальных или конечных пробелов).
Часто желательно предоставить пользователю специальный (часто по умолчанию) выбор в дополнение к диапазону числовых значений. См. 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()
Деструктор.
[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().
[virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const
Переопределено из QAbstractSpinBox::validate().
[signal] void QDoubleSpinBox::valueChanged(double d)
Этот сигнал испускается всякий раз, когда изменяется значение спинбокса. Новое значение передаётся в d.
Примечание: Сигнал valueChanged перегружен в этом классе. Чтобы подключиться к этому сигналу с использованием синтаксиса указателя на функцию, необходимо указать тип сигнала в явном приведении, как показано в этом примере:
connect(doubleSpinBox, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
[=](double d){ /* ... */ }); Примечание: Сигнал уведомления для свойства value.
[signal] void QDoubleSpinBox::valueChanged(const QString &text)
Это перегруженная функция.
Новое значение передаётся в text с prefix() и suffix().
Примечание: Сигнал valueChanged перегружен в этом классе. Чтобы подключиться к этому сигналу с использованием синтаксиса указателя на функцию, необходимо указать тип сигнала в явном приведении, как показано в этом примере:
connect(doubleSpinBox, static_cast<void(QDoubleSpinBox::*)(const QString &)>(&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/archives/qt-5.6/qdoublespinbox.html