Spec-Zone.ru › Qt 6.0

Класс QSpinBox

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

Заголовок: #include <QSpinBox>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
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 textChanged(const QString &text)
void valueChanged(int i)

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

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

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

virtual bool event(QEvent *event) override
virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

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

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

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

Каждый раз при изменении значения QSpinBox посылает сигналы valueChanged() и textChanged(), первый из которых предоставляет int, а второй - QString. Сигнал textChanged() предоставляет значение с 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.

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

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

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

См. также QDoubleSpinBox, QDateTimeEdit, QSlider и Пример спин-боксов.

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

[read-only] cleanText : const QString

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

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

QString cleanText() const

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

[since 5.2] 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)

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

QSpinBox::QSpinBox(QWidget *parent = nullptr)

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

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

[signal, since 5.14] void QSpinBox::textChanged(const QString &text)

Этот сигнал испускается всякий раз, когда меняется текст поля ввода. Новый текст передается в text с prefix() и suffix().

Эта функция была введена в Qt 5.14.

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

Этот сигнал испускается всякий раз, когда меняется значение поля ввода. Новое целочисленное значение передается в 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);

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

[since 5.12] void QSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

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

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

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

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

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

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

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

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

Эта виртуальная функция используется спин-боксом всякий раз, когда ему нужно отобразить заданное значение value. Стандартная реализация возвращает строку, содержащую value, напечатанное стандартным способом с помощью 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

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

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

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

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

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

Spec-Zone.ru

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