Spec-Zone.ru › Qt 5.12

Класс QSpinBox

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

Заголовок: #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
  • 12 свойств унаследовано от QAbstractSpinBox
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

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
  • 30 открытых функций унаследовано от QAbstractSpinBox
  • 214 открытых функций унаследовано от 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

Статические открытые члены

const QMetaObject staticMetaObject
  • 5 статических публичных членов, унаследованных от QWidget
  • 9 статических публичных членов, унаследованных от QObject

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

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
  • 20 защищённых функций, унаследованных от QAbstractSpinBox
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

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

  • 1 защищённый слот, унаследованный от QWidget

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

Большинство спинбоксов имеют направленное поведение, но 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 и Пример спинбоксов.

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

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

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

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

Минимальное значение по умолчанию равно 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().

[virtual] QSpinBox::~QSpinBox()

Деструктор.

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

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

[override 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.

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

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

Адаптивный десятичный шаг означает, что размер шага будет постоянно корректироваться до одной степени десяти ниже текущего значения value. Таким образом, когда значение равно 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

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

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

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

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

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

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

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

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

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

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

connect(spinBox, QOverload<const QString &>::of(&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/qt-5.12/qspinbox.html

Spec-Zone.ru

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