Spec-Zone.ru › Qt 5.13

Класс QSpinBox

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

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

Свойства

  • cleanText : const QString
  • displayIntegerBase : int
  • maximum : int
  • minimum : int
  • prefix : QString
  • singleStep : int
  • stepType : StepType
  • suffix : QString
  • value : int

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

QSpinBox(QWidget *parent = nullptr)
virtual ~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 setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
int singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
int value() const

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

void setValue(int val)

Сигналы

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

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

virtual QString textFromValue(int value) const
virtual int valueFromText(const QString &text) const

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

виртуальный bool event(QEvent *event) override
виртуальный void fixup(QString &input) const override
виртуальный QValidator::State validate(QString &text, int &pos) const override

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

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

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

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

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

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

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

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

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

Если использование prefix(), suffix() и specialValueText() не обеспечивает достаточный контроль, вы наследуете от QSpinBox и переопределяете valueFromText() и textFromValue(). Например, вот код для настраиваемого поля spin box, который позволяет пользователю вводить размеры иконок (например, "32 x 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 и Пример полей spin box.

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

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)

stepType : StepType

Это свойство содержит тип шага.

Тип шага может быть единичным шагом или адаптивным десятичным шагом.

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

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

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 = nullptr)

Создает спин-бокс с минимальным значением 0 и максимальным значением 99, значением шага 1. Значение изначально установлено в 0. Он является дочерним элементом для parent.

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

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

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

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

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

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

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

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

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

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

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

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

[virtual] QSpinBox::~QSpinBox()

Деструктор.

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

Переопределяет: QAbstractSpinBox::event(QEvent *event).

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

Переопределяет: QAbstractSpinBox::fixup(QString &input) const.

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

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

setRange(minimum, maximum);

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

setMinimum(minimum);
setMaximum(maximum);

См. также минимум и максимум.

void QSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

Устанавливает тип шага для спин-бокса на stepType, который является одиночным шагом или адаптивным десятичным шагом.

Адаптивный десятичный шаг означает, что размер шага будет постоянно корректироваться до степени десяти ниже текущего значения значения. Таким образом, когда значение равно 1100, шаг устанавливается в 100, поэтому при увеличении значения на один шаг оно увеличивается до 1200. Для значения 1200 при увеличении значения на один шаг оно становится 1300. Для отрицательных значений, при уменьшении значения от -1100 оно становится -1200.

Направление шага учитывается для обработки крайних случаев, чтобы, например, уменьшение значения от 100 привело к значению 99, а не 90. Таким образом, увеличение шага, за которым следует уменьшение, или наоборот, всегда возвращает к исходному значению; 99 -> 100 -> 99.

Установка этого параметра приведет к тому, что спин-бокс проигнорирует значение singleStep, хотя оно сохраняется, чтобы singleStep вступило в силу, если адаптивный десятичный шаг позже будет выключен.

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

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

См. также stepType().

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

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

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

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

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

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

Переопределяет: QAbstractSpinBox::validate(QString &input, int &pos) const.

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

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

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

Примечание: QSpinBox обрабатывает specialValueText() отдельно; эта функция касается только других значений.

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

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qspinbox.html

Spec-Zone.ru

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