Spec-Zone.ru › Qt 5.6

Класс QSpinBox

Класс QSpinBox предоставляет виджет спин-бокc. Подробнее...

Заголовок: #include <QSpinBox>
qmake: QT += widgets
Наследуется от: QAbstractSpinBox
  • Список всех членов, включая унаследованные

Свойства

  • cleanText : const QString
  • displayIntegerBase : int
  • maximum : int
  • minimum : int
  • prefix : QString
  • singleStep : int
  • suffix : QString
  • value : int
  • 12 свойств унаследовано от QAbstractSpinBox
  • 58 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

QSpinBox(QWidget *parent = Q_NULLPTR)
~QSpinBox()
QString cleanText() const
int displayIntegerBase() const
int maximum() const
int minimum() const
QString prefix() const
void setDisplayIntegerBase(int base)
void setMaximum(int max)
void setMinimum(int min)
void setPrefix(const QString &prefix)
void setRange(int minimum, int maximum)
void setSingleStep(int val)
void setSuffix(const QString &suffix)
int singleStep() const
QString suffix() const
int value() const
  • 30 открытых функций унаследовано от QAbstractSpinBox
  • 211 открытых функций унаследовано от QWidget
  • 31 открытых функций унаследовано от QObject
  • 14 открытых функций унаследовано от QPaintDevice

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

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

Сигналы

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

Защищённые функции

виртуальный QString textFromValue(int value) const
виртуальный int valueFromText(const QString &text) const

Переопределённые защищённые функции

виртуальный bool event(QEvent *event)
виртуальный void fixup(QString &input) const
виртуальный QValidator::State validate(QString &text, int &pos) const
  • 20 защищённых функций, унаследованных от QAbstractSpinBox
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

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

  • 5 статических публичных членов, унаследованных от QWidget
  • 11 статических публичных членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget

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

Класс QSpinBox предоставляет виджет спин-бокса.

QSpinBox предназначен для работы с целыми числами и дискретными наборами значений (например, названиями месяцев); используйте QDoubleSpinBox для значений с плавающей точкой.

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

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

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

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

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

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

Screenshot of a Windows Vista spin box Поле ввода с шагом, отображаемое в стиле виджетов Windows Vista.
Screenshot of a Fusion spin box Поле ввода с шагом, отображаемое в стиле виджетов Fusion.
Screenshot of a Macintosh spin box Поле ввода с шагом, отображаемое в стиле виджетов Macintosh.

Наследование от QSpinBox

Если использования prefix(), suffix() и specialValueText() недостаточно для управления, необходимо наследоваться от QSpinBox и переопределить valueFromText() и textFromValue(). Например, вот код для пользовательского поля ввода, позволяющего пользователю вводить размеры иконок (например, «32 х 32»):

int IconSizeSpinBox::valueFromText(const QString &text) const
{
    static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"));
    Q_ASSERT(regExp.isValid());

    const QRegularExpressionMatch match = regExp.match(text);
    if (match.isValid())
        return match.captured(1).toInt();
    return 0;
}

QString IconSizeSpinBox::textFromValue(int value) const
{
    return tr("%1 x %1").arg(value);
}

См. пример Иконки для полного исходного кода.

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

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

cleanText : const QString

Это свойство содержит текст поля ввода с шагом, исключая любой префикс, суффикс или начальные и конечные пробелы.

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

QString cleanText() const

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

displayIntegerBase : int

Это свойство содержит базу, используемую для отображения значения поля ввода с шагом.

Значение по умолчанию для displayIntegerBase равно 10.

Это свойство было введено в Qt 5.2.

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

int displayIntegerBase() const
void setDisplayIntegerBase(int base)

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

maximum : int

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

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

Максимальное значение по умолчанию равно 99.

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

int maximum() const
void setMaximum(int max)

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

minimum : int

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

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

Минимальное значение по умолчанию равно 0.

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

int minimum() const
void setMinimum(int min)

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

prefix : QString

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

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

sb->setPrefix("$");

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

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

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

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

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

singleStep : int

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

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

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

int singleStep() const
void setSingleStep(int val)

suffix : QString

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

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

sb->setSuffix(" km");

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

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

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

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

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

value : int

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

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

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

int value() const
void setValue(int val)

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

void valueChanged(int i)
void valueChanged(const QString &text)

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

QSpinBox::QSpinBox(QWidget *parent = Q_NULLPTR)

Конструктор поля ввода с шагом, в котором минимальное значение равно 0, максимальное — 99, а значение шага — 1. Значение по умолчанию равно 0. Родительским элементом является parent.

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

QSpinBox::~QSpinBox()

Деструктор.

[virtual protected] bool QSpinBox::event(QEvent *event)

Переопределено из QObject::event().

[virtual protected] void QSpinBox::fixup(QString &input) const

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

void QSpinBox::setRange(int minimum, int maximum)

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

setRange(minimum, maximum);

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

setMinimum(minimum);
setMaximum(maximum);

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

[virtual protected] QString QSpinBox::textFromValue(int value) const

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

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

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

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

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

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

[signal] void QSpinBox::valueChanged(int i)

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

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

connect(spinBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),
    [=](int i){ /* ... */ });

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

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

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

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

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

connect(spinBox, static_cast<void(QSpinBox::*)(const QString &)>(&QSpinBox::valueChanged),
    [=](const QString &text){ /* ... */ });

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

[virtual protected] int QSpinBox::valueFromText(const QString &text) const

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

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

Примечание: QSpinBox обрабатывает 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/qspinbox.html

Spec-Zone.ru

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