Spec-Zone.ru › Qt 6.0

Класс QAbstractSpinBox

Класс QAbstractSpinBox предоставляет спинбокс и поле редактирования для отображения значений. Подробнее...

Заголовок: #include <QAbstractSpinBox>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследуется от: QWidget
Наследующие классы:

QDateTimeEdit, QDoubleSpinBox и QSpinBox

  • Список всех членов, включая унаследованные

Типы

Перечисление ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
Перечисление CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
Флаги StepEnabled
Перечисление StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
Перечисление StepType { DefaultStepType, AdaptiveDecimalStepType }

Свойства

  • accelerated : bool
  • acceptableInput : const bool
  • alignment : Qt::Alignment
  • buttonSymbols : ButtonSymbols
  • correctionMode : CorrectionMode
  • frame : bool
  • keyboardTracking : bool
  • readOnly : bool
  • showGroupSeparator : bool
  • specialValueText : QString
  • text : const QString
  • wrapping : bool

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

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

Вот основные свойства класса:

  1. text: Текст, отображаемый в QAbstractSpinBox.
  2. alignment: Выравнивание текста в QAbstractSpinBox.
  3. 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

Spec-Zone.ru

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