Класс QAbstractSpinBox
Класс QAbstractSpinBox предоставляет спинбокс и поле ввода для отображения значений. Подробнее...
| Заголовок: | #include <QAbstractSpinBox> |
| 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) |
| 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 и Пример спинбоксов.
Документация типов членов
enum QAbstractSpinBox::ButtonSymbols
Этот перечисление описывает символы, которые могут быть отображены на кнопках в спинбоксе.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractSpinBox::UpDownArrows |
0 |
Маленькие стрелки в классическом стиле. |
QAbstractSpinBox::PlusMinus |
1 |
Символы + и -. |
QAbstractSpinBox::NoButtons |
2 |
Кнопки не отображаются. |
См. также QAbstractSpinBox::buttonSymbols.
enum QAbstractSpinBox::CorrectionMode
Этот тип перечисления описывает режим, который спинбокс будет использовать для исправления значения Intermediate, если редактирование завершено.
| Постоянная | Значение | Описание |
|---|---|---|
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.
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() и textChanged() во время ввода нового значения с клавиатуры.
Например, при вводе значения 600 вводом 6, 0 и 0, спин-бокс испускает 3 сигнала со значениями 6, 60 и 600 соответственно.
Если отслеживание клавиатуры отключено, спин-бокс не испускает сигналы valueChanged() и textChanged() во время ввода. Он испускает их позже, при нажатии клавиши возврата, при потере фокуса клавиатуры или при использовании других функций спин-бокса, например, нажатии клавиши со стрелкой.
Это свойство было введено в 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::textChanged(), который передаёт QString.
Чтобы отключить отображение текста специального значения, вызовите эту функцию со строкой без текста. По умолчанию нет текста специального значения, т.е. отображается числовое значение как обычно.
Если текст специального значения не задан, specialValueText() возвращает пустую строку.
Функции доступа:
| QString | specialValueText() const |
| void | setSpecialValueText(const QString &txt) |
text : const QString
Это свойство содержит текст спин-бокса, включая любые префиксы и суффиксы.
По умолчанию текст не задан.
Функции доступа:
| QString | text() const |
wrapping : bool
Это свойство указывает, является ли спин-бокс циклическим.
Если wrapping true, переключение вверх от maximum() приведет к minimum() и наоборот. Зацикливание имеет смысл только если заданы 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()
Очищает 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).
[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-5.15/qabstractspinbox.html