Класс 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 |
- 214 открытых функций, унаследованных от QWidget
- 31 открытая функция, унаследованная от QObject
- 14 открытых функций, унаследованных от QPaintDevice
Открытые слоты
| virtual void | clear() |
| void | selectAll() |
| void | stepDown() |
| void | stepUp() |
Сигналы
| void | editingFinished() |
Статические публичные члены
| const QMetaObject | staticMetaObject |
- 5 статических публичных членов унаследованы от QWidget
- 9 статических публичных членов унаследованы от QObject
Защищённые функции
| 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 |
- 35 защищённых функций унаследованы от QWidget
- 9 защищённых функций унаследованы от QObject
- 1 защищённая функция унаследована от QPaintDevice
Дополнительные унаследованные члены
- 1 защищённый слот унаследован от QWidget
Подробное описание
Класс QAbstractSpinBox предоставляет поле ввода с кнопками для изменения значения и поле ввода для отображения значения.
Класс разработан как общий базовый класс для виджетов, таких как 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(), пока новое значение вводится с клавиатуры.
Например, когда пользователь вводит значение 600, набирая 6, 0 и 0, поле со списком испускает 3 сигнала со значениями 6, 60 и 600 соответственно.
Если отслеживание клавиатуры отключено, поле со списком не испускает сигнал valueChanged() во время набора текста. Он испускает сигнал позже, когда нажата клавиша возврата, когда теряется фокус клавиатуры или когда используется другая функциональность поля со списком, например, нажатие клавиши со стрелкой.
Это свойство было добавлено в 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% или выбрать «Авто», чтобы предоставить приложению выбор.
Все значения отображаются с префиксом и суффиксом (если установлены), за исключением специального значения, которое отображает только специальный текст значения. Этот специальный текст передается в сигнале QSpinBox::valueChanged(), который передает QString.
Чтобы отключить отображение специального текста значения, вызовите эту функцию с пустой строкой. Значение по умолчанию — отсутствие специального текста значения, то есть числовое значение отображается как обычно.
Если специальный текст значения не установлен, specialValueText() возвращает пустую строку.
Функции доступа:
| QString | specialValueText() const |
| void | setSpecialValueText(const QString &txt) |
text : const QString
Это свойство хранит текст поля со списком, включая любой префикс и суффикс
Текст по умолчанию отсутствует.
Функции доступа:
| QString | text() const |
wrapping : bool
Это свойство определяет, является ли поле со списком циклическим.
Если wrapping имеет значение true, переход от максимального() значения к минимальному() значению и наоборот. Wrapping имеет смысл только в том случае, если установлены минимальные() и максимальные() значения.
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] QAbstractSpinBox::~QAbstractSpinBox()
Вызывается при уничтожении QAbstractSpinBox.
[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)
Переопределено из QWidget::changeEvent().
[virtual slot] void QAbstractSpinBox::clear()
Очищает lineedit от всего текста, кроме префикса и суффикса.
[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)
Переопределено из QWidget::closeEvent().
[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)
Переопределено из QWidget::contextMenuEvent().
[signal] void QAbstractSpinBox::editingFinished()
Этот сигнал испускается, когда завершено редактирование. Это происходит, когда спинбокс теряет фокус и нажимается Enter.
[override virtual] bool QAbstractSpinBox::event(QEvent *event)
Переопределено из QWidget::event().
[virtual] void QAbstractSpinBox::fixup(QString &input) const
Этот виртуальный метод вызывается QAbstractSpinBox, если input не прошла валидацию на QValidator::Acceptable при нажатии Return или вызове interpretText(). Он попытается изменить текст, чтобы он стал валидным. Переопределяется в различных подклассах.
[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)
Переопределено из QWidget::focusInEvent().
[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)
Переопределено из QWidget::focusOutEvent().
[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)
Переопределено из QWidget::hideEvent().
[protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const
Инициализирует option значениями из этого QSpinBox. Этот метод полезен для подклассов, когда им нужен QStyleOptionSpinBox, но они не хотят заполнять всю информацию самостоятельно.
См. также QStyleOption::initFrom().
[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const
Переопределено из QWidget::inputMethodQuery().
void QAbstractSpinBox::interpretText()
Эта функция интерпретирует текст спинбокса. Если значение изменилось с последней интерпретации, будут испущены сигналы.
[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)
Переопределено из QWidget::keyPressEvent().
Эта функция обрабатывает ввод с клавиатуры.
Следующие клавиши обрабатываются специально:
| 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().
[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().
[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)
Переопределено из QWidget::mousePressEvent().
[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)
Переопределено из QWidget::mouseReleaseEvent().
[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)
Переопределено из QWidget::paintEvent().
[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)
Переопределено из QWidget::resizeEvent().
[slot] void QAbstractSpinBox::selectAll()
Выделяет весь текст в спинбоксе, кроме префикса и суффикса.
[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)
Устанавливает line edit спинбокса в lineEdit вместо текущего виджета line edit. lineEdit не может быть 0.
QAbstractSpinBox принимает владение новым lineEdit.
Если QLineEdit::validator() для lineEdit возвращает nullptr, внутренний валидатор спинбокса будет установлен на line edit.
См. также lineEdit().
[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)
Переопределено из QWidget::showEvent().
[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().
[slot] void QAbstractSpinBox::stepDown()
Делает шаг вниз на одну линию. Вызов этого слота аналогичен вызову stepBy(-1).
См. также stepBy() и stepUp().
[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const
Виртуальная функция, определяющая, разрешено ли перемещение вверх и вниз в данный момент.
Стрелка вверх будет отображена как отключенная, если (stepEnabled() & StepUpEnabled) != 0.
Реализация по умолчанию вернёт (StepUpEnabled | StepDownEnabled), если включено перематывание. В противном случае она вернёт StepDownEnabled, если значение больше minimum(), или StepUpEnabled, если значение меньше maximum().
Если вы наследуете от QAbstractSpinBox, вам необходимо переопределить эту функцию.
См. также QSpinBox::minimum(), QSpinBox::maximum() и перематывание().
[slot] void QAbstractSpinBox::stepUp()
Перемещает значение на одну позицию вверх. Вызов этого слота аналогичен вызову stepBy(1);
См. также stepBy() и stepDown().
[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)
Переопределено из QObject::timerEvent().
[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const
Эта виртуальная функция вызывается QAbstractSpinBox для определения, является ли input допустимым. Параметр pos указывает позицию в строке. Переопределено в различных подклассах.
[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)
Переопределено из QWidget::wheelEvent().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qabstractspinbox.html