Класс 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 и Пример спинбоксов.
Документация по типам членов
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
Это свойство указывает, будет ли спин-бокс ускорять частоту шагов при нажатии кнопок увеличения/уменьшения шага.
При включении спин-бокс будет увеличивать/уменьшать значение быстрее, чем дольше вы удерживаете нажатой кнопку.
Функции доступа:
| 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
Это свойство указывает, является ли спин-бокс циклическим.
Если обёртка равна true, переход к максимальному значению приведет к минимальному значению, и наоборот. Циклическая обёртка имеет смысл только если у вас установлены минимальные и максимальные значения.
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()
Очищает поле ввода от всего текста, кроме префикса и суффикса.
[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
Этот метод возвращает указатель на поле ввода спинбокса.
См. также 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)
Устанавливает поле ввода спинбокса на 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.
[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.0/qabstractspinbox.html