Класс QAbstractSpinBox
Класс QAbstractSpinBox предоставляет спинбокс и поле ввода для отображения значений. Подробнее...
| Заголовок: | #include <QAbstractSpinBox> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QWidget |
| Наследуется: |
Открытые типы
| Перечисление | ButtonSymbols { UpDownArrows, PlusMinus, NoButtons } |
| Перечисление | CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue } |
| Флаги | StepEnabled |
| Перечисление | StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled } |
| Перечисление | StepType { DefaultStepType, AdaptiveDecimalStepType } |
Свойства
|
|
Открытые функции
| 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) |
| виртуальный QAbstractSpinBox::StepEnabled | stepEnabled() const |
Реализованные защищённые функции
| виртуальный void | changeEvent(QEvent *event) override |
| виртуальный void | closeEvent(QCloseEvent *event) override |
| виртуальный void | contextMenuEvent(QContextMenuEvent *event) override |
| виртуальный void | focusInEvent(QFocusEvent *event) override |
| виртуальный void | focusOutEvent(QFocusEvent *event) override |
| виртуальный void | hideEvent(QHideEvent *event) override |
| виртуальный void | keyPressEvent(QKeyEvent *event) override |
| виртуальный void | keyReleaseEvent(QKeyEvent *event) override |
| виртуальный void | mouseMoveEvent(QMouseEvent *event) override |
| виртуальный void | mousePressEvent(QMouseEvent *event) override |
| виртуальный void | mouseReleaseEvent(QMouseEvent *event) override |
| виртуальный void | paintEvent(QPaintEvent *event) override |
| виртуальный void | resizeEvent(QResizeEvent *event) override |
| виртуальный void | showEvent(QShowEvent *event) override |
| виртуальный void | timerEvent(QTimerEvent *event) override |
| виртуальный 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 Boxes.
Документация по типам членов
перечисление QAbstractSpinBox::ButtonSymbols
Это перечисление типов описывает символы, которые могут отображаться на кнопках в спинбоксе.
| Константа | Значение | Описание |
|---|---|---|
QAbstractSpinBox::UpDownArrows |
0 |
Маленькие стрелки в классическом стиле. |
QAbstractSpinBox::PlusMinus |
1 |
символы + и -. |
QAbstractSpinBox::NoButtons |
2 |
Кнопки не отображаются. |
См. также QAbstractSpinBox::buttonSymbols.
перечисление QAbstractSpinBox::CorrectionMode
Это перечисление типов описывает режим, который спинбокс будет использовать для исправления значения Intermediate, если редактирование завершено.
| Константа | Значение | Описание |
|---|---|---|
QAbstractSpinBox::CorrectToPreviousValue |
0 |
Спинбокс вернется к последнему допустимому значению. |
QAbstractSpinBox::CorrectToNearestValue |
1 |
Спинбокс вернется к ближайшему допустимому значению. |
См. также correctionMode.
перечисление флагов QAbstractSpinBox::StepEnabledFlag QAbstractSpinBox::StepEnabled
| Константа | Значение |
|---|---|
QAbstractSpinBox::StepNone |
0x00 |
QAbstractSpinBox::StepUpEnabled |
0x01 |
QAbstractSpinBox::StepDownEnabled |
0x02 |
Тип StepEnabled является псевдонимом для QFlags<StepEnabledFlag>. Он хранит логическое ИЛИ сочетание значений StepEnabledFlag.
перечисление QAbstractSpinBox::StepType
| Константа | Значение |
|---|---|
QAbstractSpinBox::DefaultStepType |
0 |
QAbstractSpinBox::AdaptiveDecimalStepType |
1 |
Документация по свойству
accelerated : bool
Это свойство указывает, будет ли спин-бокс ускорять частоту шагов при нажатии кнопок увеличения/уменьшения.
При включенном режиме спин-бокс будет увеличивать/уменьшать значение быстрее, чем дольше вы удерживаете кнопку.
Функции доступа:
| bool | isAccelerated() const |
| void | setAccelerated(bool on) |
[read-only] acceptableInput : const bool
Это свойство указывает, удовлетворяет ли входное значение текущей валидации.
Функции доступа:
| 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.
Функции доступа:
| QAbstractSpinBox::CorrectionMode | correctionMode() const |
| void | setCorrectionMode(QAbstractSpinBox::CorrectionMode cm) |
См. также acceptableInput, validate() и fixup().
frame : bool
Это свойство указывает, будет ли спин-бокс отображаться с рамкой.
При включенном режиме (по умолчанию) спин-бокс отображается в рамке, в противном случае без рамки.
Функции доступа:
| bool | hasFrame() const |
| void | setFrame(bool) |
keyboardTracking : bool
Это свойство указывает, включена ли функция отслеживания клавиатуры для спин-бокса.
Если отслеживание клавиатуры включено (по умолчанию), спин-бокс генерирует сигналы valueChanged() и textChanged() во время ввода нового значения с клавиатуры.
Например, когда пользователь вводит значение 600 набирая 6, 0 и 0, спин-бокс генерирует 3 сигнала со значениями 6, 60 и 600 соответственно.
Если отслеживание клавиатуры отключено, спин-бокс не генерирует сигналы valueChanged() и textChanged() во время ввода. Он генерирует сигналы позже, когда нажата клавиша возврата, когда теряется фокус клавиатуры или используется другая функциональность спин-бокса, например, нажатие клавиши со стрелкой.
Функции доступа:
| bool | keyboardTracking() const |
| void | setKeyboardTracking(bool kt) |
readOnly : bool
Это свойство указывает, является ли спин-бокс только для чтения.
В режиме только для чтения пользователь по-прежнему может копировать текст в буфер обмена или перетаскивать его, но не может его редактировать.
QLineEdit в QAbstractSpinBox не отображает курсор в режиме только для чтения.
Функции доступа:
| bool | isReadOnly() const |
| void | setReadOnly(bool r) |
См. также QLineEdit::readOnly.
[since 5.3] 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::textChanged(), который передаёт QString.
Чтобы отключить отображение текста специального значения, вызовите эту функцию со пустой строкой. По умолчанию текст специального значения не установлен, то есть числовое значение отображается как обычно.
Если текст специального значения не установлен, specialValueText() возвращает пустую строку.
Функции доступа:
| QString | specialValueText() const |
| void | setSpecialValueText(const QString &txt) |
[read-only] text : const QString
Это свойство содержит текст спин-бокса, включая префикс и суффикс.
Текста по умолчанию нет.
Функции доступа:
| QString | text() const |
wrapping : bool
Это свойство указывает, является ли спин-бокс циклическим.
Если wrapping равно true, то переход к максимальному значению будет переключать на минимальное и наоборот. Зацикливание имеет смысл только если установлены значения 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 со свойствами wrapping и alignment по умолчанию.
[virtual slot] void QAbstractSpinBox::clear()
Очищает lineedit от всего текста, кроме префикса и суффикса.
[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).
[virtual 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
Этот метод возвращает указатель на line edit спинбокса.
См. также setLineEdit().
[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const
Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.
[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)
Устанавливает line edit спинбокса на lineEdit вместо текущего виджета line edit. lineEdit не может быть nullptr.
QAbstractSpinBox берёт во владение новый lineEdit.
Если QLineEdit::validator() для lineEdit возвращает nullptr, внутренний валидатор спинбокса будет установлен на line edit.
См. также lineEdit().
[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)
Переопределяет: QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QAbstractSpinBox::sizeHint() const
Переопределяет функцию доступа к свойству: QWidget::sizeHint.
[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-6.1/qabstractspinbox.html