Spec-Zone.ru › Qt

Класс 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, НетКнопок }
Перечисление CorrectionMode { ИсправлениеНаПредыдущееЗначение, ИсправлениеНаБлижайшееЗначение }
Флаги 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)

Переопределённые открытые функции

virtual bool event(QEvent *event) override

Открытые слоты

virtual void clear()
void selectAll()
void stepDown()

Сигналы

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 и Пример Spin Box.

Документация по типам членов

перечисление 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 — это typedef для 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() во время ввода. Он излучает эти сигналы позже, при нажатии клавиши Enter, при потере фокуса клавиатуры или при использовании других функций спин-бокса, например, при нажатии клавиши со стрелкой.

Функции доступа:

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

Это свойство указывает, является ли спин-бокс циклическим.

Если циклический режим включён, перемещение вверх от максимального значения переходит к минимальному значению и наоборот. Циклический режим имеет смысл только если установлены минимальное и максимальное значения.

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)

Создаёт абстрактный спинбокс с заданным родительским элементом с параметрами оборачивания и выравнивания по умолчанию.

[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 при нажатии Enter или при вызове 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 Это переинтерпретирует текст и испускает сигнал, даже если значение не изменилось с момента последнего испускания сигнала.
Up Это вызовет stepBy(1)
Down Это вызовет 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.2/qabstractspinbox.html

Spec-Zone.ru

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