Класс QSpinBox
Класс QSpinBox предоставляет виджет спин-бокса. Подробнее...
| Заголовок: | #include <QSpinBox> |
| qmake: | QT += widgets |
| Наследует: | QAbstractSpinBox |
Свойства
|
|
- 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 | setSuffix(const QString &suffix) |
| int | singleStep() const |
| QString | suffix() const |
| int | value() const |
- 30 открытых функций, унаследованных от QAbstractSpinBox
- 214 открытых функций, унаследованных от QWidget
- 34 открытых функций, унаследованных от 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
Защищённые функции
| 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 общедоступная переменная, унаследованная от QObject
- 5 статических общедоступных членов, унаследованных от QWidget
- 10 статических общедоступных членов, унаследованных от QObject
- 1 защищённый слот, унаследованный от QWidget
- 2 защищённые переменные, унаследованные от QObject
- 1 защищённый тип, унаследованный от QPaintDevice
Подробное описание
Класс QSpinBox предоставляет виджет спин-бокcа.
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(), если требуется циклическое поведение.
END_OF_DOCUMENT_MARKERОтображаемое значение можно дополнить и заключить в произвольные строки, указывающие, например, валюту или единицу измерения. См. 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);
} См. пример Иконок для полного исходного кода.
См. также 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) |
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)
Функция-обёртка для установки minimum и maximum значений с помощью одного вызова.
setRange(minimum, maximum);
эквивалентна:
setMinimum(minimum); setMaximum(maximum);
[virtual protected] QString QSpinBox::textFromValue(int value) const
Эта виртуальная функция используется виджетом QSpinBox, когда ему нужно отобразить заданное значение 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)
Этот сигнал излучается всякий раз, когда значение QSpinBox изменяется. Новое значение в виде целого числа передаётся в 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
Эта виртуальная функция используется QSpinBox, когда ему необходимо интерпретировать введённую пользователем строку text как значение.
Подклассы, которым необходимо отображать значения QSpinBox нечисловым способом, должны переопределить эту функцию.
Примечание: 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.11/qspinbox.html