Класс QAbstractSpinBox
Класс QAbstractSpinBox предоставляет виджет спинбокса и линию редактирования для отображения значений. Подробнее...
| Заголовок: | #include <QAbstractSpinBox> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
| Наследуется от: |
Открытые типы
| Перечисление | ButtonSymbols { UpDownArrows, PlusMinus, НетКнопок } |
| Перечисление | CorrectionMode { ИсправитьНаПредыдущееЗначение, ИсправитьНаБлижайшееЗначение } |
| Флаги | StepEnabled |
| Перечисление | StepEnabledFlag { ШагОтсутствует, ШагВверхДоступен, ШагВнизДоступен } |
| Перечисление | StepType { ТипШагаПоУмолчанию, ТипШагаСДробнымиЗначениями } |
Свойства
|
|
Открытые функции
| QAbstractSpinBox(QWidget *parent = nullptr) | |
| virtual | ~QAbstractSpinBox() |
| Qt::Alignment | alignment() const |
| QAbstractSpinBox::ButtonSymbols | buttonSymbols() const |
| QAbstractSpinBox::CorrectionMode | correctionMode() const |
| virtual void | fixup(QString &input) const |
| bool | hasAcceptableInput() const |
| bool | hasFrame() const |
| void | interpretText() |
| bool | isAccelerated() const |
| bool | isGroupSeparatorShown() const |
| bool | isReadOnly() const |
| bool | keyboardTracking() const |
| void | setAccelerated(bool on) |
| void | setAlignment(Qt::Alignment flag) |
| void | setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs) |
| void | setCorrectionMode(QAbstractSpinBox::CorrectionMode cm) |
| void | setFrame(bool) |
| void | setGroupSeparatorShown(bool shown) |
| void | setKeyboardTracking(bool kt) |
| void | setReadOnly(bool r) |
| void | setSpecialValueText(const QString &txt) |
| void | setWrapping(bool w) |
| QString | specialValueText() const |
| virtual void | stepBy(int steps) |
| QString | text() const |
| virtual QValidator::State | validate(QString &input, int &pos) const |
| bool | wrapping() const |
Реализованные публичные функции
| virtual bool | event(QEvent *event) override |
| virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Публичные слоты
| virtual void | clear() |
| void | selectAll() |
| void | stepDown() |
| void | stepUp() |
Сигналы
| void | editingFinished() |
Защищенные функции
| void | initStyleOption(QStyleOptionSpinBox *option) const |
| QLineEdit * | lineEdit() const |
| void | setLineEdit(QLineEdit *lineEdit) |
| virtual QAbstractSpinBox::StepEnabled | stepEnabled() const |
Реализованные защищённые функции
| virtual void | changeEvent(QEvent *event) override |
| virtual void | closeEvent(QCloseEvent *event) override |
| virtual void | contextMenuEvent(QContextMenuEvent *event) override |
| virtual void | focusInEvent(QFocusEvent *event) override |
| virtual void | focusOutEvent(QFocusEvent *event) override |
| virtual void | hideEvent(QHideEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *event) override |
| virtual void | keyReleaseEvent(QKeyEvent *event) override |
| virtual void | mouseMoveEvent(QMouseEvent *event) override |
| virtual void | mousePressEvent(QMouseEvent *event) override |
| virtual void | mouseReleaseEvent(QMouseEvent *event) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | showEvent(QShowEvent *event) override |
| virtual void | timerEvent(QTimerEvent *event) override |
| virtual void | wheelEvent(QWheelEvent *event) override |
Подробное описание
Класс разработан как общий родительский класс для виджетов, таких как QSpinBox, QDoubleSpinBox и QDateTimeEdit
Вот основные свойства класса:
- text: Текст, отображаемый в QAbstractSpinBox.
- alignment: Выравнивание текста в QAbstractSpinBox.
- wrapping: Определяет, будет ли QAbstractSpinBox перематываться от минимального значения к максимальному и обратно.
QAbstractSpinBox предоставляет виртуальную функцию stepBy(), которая вызывается всякий раз, когда пользователь выполняет шаг. Эта функция принимает целое значение, обозначающее количество сделанных шагов. Например, нажатие клавиши Qt::Key_Down вызовет stepBy(-1).
Когда пользователь выполняет шаг, удерживая клавишу Qt::ControlModifier, QAbstractSpinBox выполняет шаг на 10 единиц вместо одного шага. Этот модификатор шага влияет на события прокрутки, события нажатия клавиш и взаимодействие с кнопками спинбокса. Обратите внимание, что на macOS клавиша Control соответствует клавише Command.
С Qt 5.12, QStyle::SH_SpinBox_StepModifier можно использовать для выбора Qt::KeyboardModifier, увеличивающего скорость шага. Qt::NoModifier отключает эту функцию.
QAbstractSpinBox также предоставляет виртуальную функцию stepEnabled(), чтобы определить, разрешено ли выполнение шага вверх/вниз в любой момент. Эта функция возвращает набор флагов StepEnabled.
См. также QAbstractSlider, QSpinBox, QDoubleSpinBox, QDateTimeEdit и Пример с Spin Box.
Документация по типам членов
enum QAbstractSpinBox::ButtonSymbols
Этот перечисление определяет символы, которые могут отображаться на кнопках спинбокса.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractSpinBox::UpDownArrows |
0 |
Маленькие стрелки в классическом стиле. |
QAbstractSpinBox::PlusMinus |
1 |
Символы + и -. |
QAbstractSpinBox::NoButtons |
2 |
Кнопки не отображаются. |
См. также QAbstractSpinBox::buttonSymbols.
enum QAbstractSpinBox::CorrectionMode
Это перечисление описывает режим, в котором спинбокс будет исправлять промежуточное значение, если редактирование завершено.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue |
0 |
Спинбокс вернётся к последнему допустимому значению. |
QAbstractSpinBox::CorrectToNearestValue |
1 |
Спинбокс вернётся к ближайшему допустимому значению. |
См. также correctionMode.
enum QAbstractSpinBox::StepEnabledFlagflags QAbstractSpinBox::StepEnabled
| Постоянная | Значение |
|---|---|
QAbstractSpinBox::StepNone |
0x00 |
QAbstractSpinBox::StepUpEnabled |
0x01 |
QAbstractSpinBox::StepDownEnabled |
0x02 |
Тип StepEnabled является типом-псевдонимом для QFlags<StepEnabledFlag>. Он хранит комбинацию значений StepEnabledFlag, объединённых операцией OR.
enum QAbstractSpinBox::StepType
| Постоянная | Значение |
|---|---|
QAbstractSpinBox::DefaultStepType |
0 |
QAbstractSpinBox::AdaptiveDecimalStepType |
1 |
Документация по свойствам
accelerated : bool
Данное свойство указывает, будет ли спин-бокс ускорять частоту шагов при нажатии кнопок увеличения/уменьшения.
При включении спин-бокс будет увеличивать/уменьшать значение быстрее, чем дольше вы удерживаете кнопку.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | isAccelerated() const |
| void | setAccelerated(bool on) |
acceptableInput : const bool
Это свойство указывает, удовлетворяет ли вход текущей валидации.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | hasAcceptableInput() const |
См. также validate(), fixup(), и correctionMode.
alignment : Qt::Alignment
Это свойство определяет выравнивание спин-бокса.
Возможные значения: Qt::AlignLeft, Qt::AlignRight и Qt::AlignHCenter.
По умолчанию выравнивание — Qt::AlignLeft.
Попытка установить выравнивание с неверной комбинацией флагов не приводит к действию.
Функции доступа:
| Qt::Alignment | alignment() const |
| void | setAlignment(Qt::Alignment flag) |
См. также Qt::Alignment.
buttonSymbols : ButtonSymbols
Это свойство содержит текущий режим символов кнопок.
Возможные значения — UpDownArrows или PlusMinus. По умолчанию — UpDownArrows.
Обратите внимание, что некоторые стили могут отображать PlusMinus и UpDownArrows идентично.
Функции доступа:
| QAbstractSpinBox::ButtonSymbols | buttonSymbols() const |
| void | setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs) |
См. также ButtonSymbols.
correctionMode : CorrectionMode
Это свойство определяет режим исправления значения Intermediate, если редактирование завершено.
Режим по умолчанию — QAbstractSpinBox::CorrectToPreviousValue.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QAbstractSpinBox::CorrectionMode | correctionMode() const |
| void | setCorrectionMode(QAbstractSpinBox::CorrectionMode cm) |
См. также acceptableInput, validate(), и fixup().
frame : bool
Это свойство указывает, будет ли спин-бокс отображаться с рамкой.
При включенном значении (по умолчанию) спин-бокс отображается в рамке, в противном случае — без рамки.
Функции доступа:
| bool | hasFrame() const |
| void | setFrame(bool) |
keyboardTracking : bool
Это свойство указывает, включена ли отслеживание ввода с клавиатуры для спин-бокса.
Если отслеживание включено (по умолчанию), спин-бокс посылает сигнал valueChanged() во время ввода нового значения с клавиатуры.
Например, при вводе значения 600 нажатием 6, 0 и 0, спин-бокс посылает 3 сигнала со значениями 6, 60 и 600 соответственно.
Если отслеживание выключено, спин-бокс не посылает сигнал valueChanged() во время ввода. Он посылает сигнал позже, когда нажата клавиша возврата, когда теряется фокус клавиатуры или при использовании других функций спин-бокса, например, нажатии клавиши со стрелкой.
Это свойство было добавлено в Qt 4.3.
Функции доступа:
| bool | keyboardTracking() const |
| void | setKeyboardTracking(bool kt) |
readOnly : bool
Это свойство указывает, является ли спин-бокс только для чтения.
В режиме только для чтения пользователь все равно может скопировать текст в буфер обмена или перетащить текст, но не может его редактировать.
QLineEdit в QAbstractSpinBox не отображает курсор в режиме только для чтения.
Функции доступа:
| bool | isReadOnly() const |
| void | setReadOnly(bool r) |
См. также QLineEdit::readOnly.
showGroupSeparator : bool
Это свойство указывает, включен ли разделитель тысяч. По умолчанию это свойство равно false.
Это свойство было добавлено в Qt 5.3.
Функции доступа:
| bool | isGroupSeparatorShown() const |
| void | setGroupSeparatorShown(bool shown) |
specialValueText : QString
Это свойство содержит текст специального значения.
Если установлено, спин-бокс будет отображать этот текст вместо числового значения всякий раз, когда текущее значение равно minimum(). Обычно используется для указания того, что этот выбор имеет специальное (по умолчанию) значение.
Например, если ваш спин-бокс позволяет пользователю выбрать коэффициент масштабирования (или уровень масштабирования) для отображения изображения, и ваше приложение способно автоматически выбрать тот, который позволит изображению полностью поместиться в окне дисплея, вы можете настроить спин-бокс так:
QSpinBox *zoomSpinBox = new QSpinBox;
zoomSpinBox->setRange(0, 1000);
zoomSpinBox->setSingleStep(10);
zoomSpinBox->setSuffix("%");
zoomSpinBox->setSpecialValueText(tr("Automatic"));
zoomSpinBox->setValue(100); Тогда пользователь сможет выбрать масштаб от 1% до 1000% или выбрать «Авто», чтобы оставить выбор за приложением. Ваш код должен затем интерпретировать значение спин-бокса 0 как запрос пользователя на масштабирование изображения для размещения в окне.
Все значения отображаются с префиксом и суффиксом (если установлены), *кроме* специального значения, которое отображает только текст специального значения. Этот специальный текст передается в сигнал QSpinBox::valueChanged(), который передает QString.
Чтобы отключить отображение текста специального значения, вызовите эту функцию со строкой-пустотой. По умолчанию текст специального значения не установлен, т.е. числовое значение отображается как обычно.
Если текст специального значения не установлен, specialValueText() возвращает пустую строку.
Функции доступа:
| QString | specialValueText() const |
| void | setSpecialValueText(const QString &txt) |
text : const QString
Это свойство содержит текст спин-бокса, включая любой префикс и суффикс.
Нет текста по умолчанию.
Функции доступа:
| QString | text() const |
wrapping : bool
Это свойство указывает, является ли спин-бокс циклическим.
Если wrapping равно true, переход вверх от максимального значения переведет вас к минимальному значению и наоборот. Wrapping имеет смысл только в том случае, если установлены значения minimum() и maximum().
QSpinBox *spinBox = new QSpinBox(this); spinBox->setRange(0, 100); spinBox->setWrapping(true); spinBox->setValue(100); spinBox->stepBy(1); // value is 0
Функции доступа:
| bool | wrapping() const |
| void | setWrapping(bool w) |
См. также QSpinBox::minimum() и QSpinBox::maximum().
Документация по членам-функциям
QAbstractSpinBox::QAbstractSpinBox(QWidget *parent = nullptr)
Создаёт абстрактный спинбокс с заданным parent с свойствами обёртки и выравнивания по умолчанию.
[virtual slot] void QAbstractSpinBox::clear()
Очищает поле редактирования от всего текста, кроме префикса и суффикса.
[signal] void QAbstractSpinBox::editingFinished()
Этот сигнал испускается при завершении редактирования. Это происходит, когда спинбокс теряет фокус и при нажатии клавиши Enter.
[slot] void QAbstractSpinBox::selectAll()
Выделяет весь текст в спинбоксе, кроме префикса и суффикса.
[slot] void QAbstractSpinBox::stepDown()
Уменьшает значение на один шаг. Вызов этого слота аналогичен вызову stepBy(-1);
См. также stepBy() и stepUp().
[slot] void QAbstractSpinBox::stepUp()
Увеличивает значение на один шаг. Вызов этого слота аналогичен вызову stepBy(1);
См. также stepBy() и stepDown().
[virtual] QAbstractSpinBox::~QAbstractSpinBox()
Вызывается при уничтожении QAbstractSpinBox.
[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)
Переопределяет: QWidget::changeEvent(QEvent *event).
[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)
Переопределяет: QWidget::closeEvent(QCloseEvent *event).
[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)
Переопределяет: QWidget::contextMenuEvent(QContextMenuEvent *event).
[override virtual] bool QAbstractSpinBox::event(QEvent *event)
Переопределяет: QWidget::event(QEvent *event).
[virtual] void QAbstractSpinBox::fixup(QString &input) const
Этот виртуальный метод вызывается QAbstractSpinBox, если input не прошла валидацию на QValidator::Acceptable при нажатии Return или вызове interpretText(). Он попытается изменить текст, чтобы он стал допустимым. Переопределяется в различных подклассах.
[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)
Переопределяет: QWidget::focusInEvent(QFocusEvent *event).
[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)
Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).
[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)
Переопределяет: QWidget::hideEvent(QHideEvent *event).
[protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const
Инициализирует option значениями из этого QSpinBox. Этот метод полезен для подклассов, когда им нужен QStyleOptionSpinBox, но они не хотят заполнять всю информацию самостоятельно.
См. также QStyleOption::initFrom().
[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const
Переопределяет: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
void QAbstractSpinBox::interpretText()
Эта функция интерпретирует текст спинбокса. Если значение изменилось с момента последней интерпретации, будут испущены сигналы.
[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)
Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).
Эта функция обрабатывает ввод с клавиатуры.
Следующие клавиши обрабатываются специально:
| Enter/Return | Это переинтерпретирует текст и испускает сигнал, даже если значение не изменилось с момента последнего испускания сигнала. |
| Вверх | Вызывает stepBy(1) |
| Вниз | Вызывает stepBy(-1) |
| Page Up | Вызывает stepBy(10) |
| Page Down | Вызывает stepBy(-10) |
См. также stepBy().
[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)
Переопределяет: QWidget::keyReleaseEvent(QKeyEvent *event).
[protected] QLineEdit *QAbstractSpinBox::lineEdit() const
Эта функция возвращает указатель на поле редактирования спинбокса.
См. также setLineEdit().
[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const
Переопределяет: QWidget::minimumSizeHint() const.
[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)
Переопределяет: QWidget::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)
Переопределяет: QWidget::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)
Переопределяет: QWidget::mouseReleaseEvent(QMouseEvent *event).
[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)
Переопределяет: QWidget::paintEvent(QPaintEvent *event).
[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)
Переопределяет: QWidget::resizeEvent(QResizeEvent *event).
[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)
Устанавливает поле редактирования спинбокса на lineEdit вместо текущего. lineEdit не может быть nullptr.
QAbstractSpinBox принимает во владение новый lineEdit.
Если QLineEdit::validator() для lineEdit возвращает nullptr, внутренний валидатор спинбокса будет установлен на поле редактирования.
См. также lineEdit().
[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)
Переопределяет: QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QAbstractSpinBox::sizeHint() const
Переопределяет: QWidget::sizeHint() const.
[virtual] void QAbstractSpinBox::stepBy(int steps)
Виртуальная функция, вызываемая при каждом срабатывании шага. Параметр steps указывает, сколько шагов было сделано. Например, нажатие Qt::Key_Down вызовет вызов stepBy(-1), а нажатие Qt::Key_PageUp вызовет вызов stepBy(10).
Если вы наследуете класс QAbstractSpinBox, вы должны переопределить эту функцию. Обратите внимание, что эта функция вызывается даже если результирующее значение окажется вне границ минимального и максимального значений. Именно эта функция должна обрабатывать такие ситуации.
См. также stepUp(), stepDown() и keyPressEvent().
[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const
Виртуальная функция, определяющая, разрешены ли операции увеличения и уменьшения в данный момент.
Стрелка вверх будет отображаться как отключенная, если (stepEnabled() & StepUpEnabled) != 0.
Реализация по умолчанию вернет (StepUpEnabled | StepDownEnabled), если включено циклическое изменение значений. В противном случае она вернет StepDownEnabled, если значение больше, чем minimum(), или StepUpEnabled, если значение меньше, чем maximum().
Если вы наследуете класс QAbstractSpinBox, вам потребуется переопределить эту функцию.
См. также QSpinBox::minimum(), QSpinBox::maximum() и wrapping().
[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)
Переопределяет: QObject::timerEvent(QTimerEvent *event).
[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const
Эта виртуальная функция вызывается классом QAbstractSpinBox для определения, является ли input допустимым. Параметр pos указывает позицию в строке. Переопределено в различных подклассах.
[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)
Переопределяет: QWidget::wheelEvent(QWheelEvent *event).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qabstractspinbox.html