QAbstractSpinBox 类

QAbstractSpinBox 类提供用于显示值的旋转框和行编辑。 更多...

头文件 #include <QAbstractSpinBox>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QWidget
继承自

QDateTimeEditQDoubleSpinBoxQSpinBox

公共类型

枚举ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
枚举CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
标志StepEnabled
枚举StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
枚举StepType { DefaultStepType, AdaptiveDecimalStepType }

属性

公共函数

QAbstractSpinBox(QWidget *parent = nullptr)
virtual~QAbstractSpinBox()
Qt::Alignmentalignment() const
QAbstractSpinBox::ButtonSymbolsbuttonSymbols() const
QAbstractSpinBox::CorrectionModecorrectionMode() const
virtual voidfixup(QString &input) const
boolhasAcceptableInput() const
boolhasFrame() const
voidinterpretText()
boolisAccelerated() const
boolisGroupSeparatorShown() const
boolisReadOnly() const
boolkeyboardTracking() const
voidsetAccelerated(布尔型 on)
voidsetAlignment(Qt::Alignment flag)
voidsetButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)
voidsetCorrectionMode(QAbstractSpinBox::CorrectionMode cm)
voidsetFrame(布尔型)
voidsetGroupSeparatorShown(布尔型 shown)
voidsetKeyboardTracking(布尔型 kt)
voidsetReadOnly(布尔型 r)
voidsetSpecialValueText(const QString &txt)
voidsetWrapping(布尔型 w)
QStringspecialValueText() const
virtual voidstepBy(int steps)
QStringtext() const
virtual QValidator::Statevalidate(QString &input, int &pos) const
boolwrapping() const

重写 Public 函数

virtual boolevent(QEvent *event) override
virtual QVariantinputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override

Public Slots

virtual voidclear()
voidselectAll()
voidstepDown()
voidstepUp()

Signals

Protected 函数

virtual voidinitStyleOption(QStyleOptionSpinBox *option) const
QLineEdit *lineEdit() const
voidsetLineEdit(QLineEdit *lineEdit)
virtual QAbstractSpinBox::StepEnabledstepEnabled() const

重写 Protected 函数

virtual voidchangeEvent(QEvent *event) override
virtual voidcloseEvent(QCloseEvent *event) override
virtual voidcontextMenuEvent(QContextMenuEvent *event) override
virtual voidfocusInEvent(QFocusEvent *event) override
virtual voidfocusOutEvent(QFocusEvent *event) override
virtual voidhideEvent(QHideEvent *event) override
virtual voidkeyPressEvent(QKeyEvent *event) override
virtual voidkeyReleaseEvent(QKeyEvent *event) override
virtual voidmouseMoveEvent(QMouseEvent *event) override
virtual voidmousePressEvent(QMouseEvent *event) override
virtual voidmouseReleaseEvent(QMouseEvent *event) override
virtual voidpaintEvent(QPaintEvent *event) override
virtual voidresizeEvent(QResizeEvent *event) override
virtual voidshowEvent(QShowEvent *event) override
virtual voidtimerEvent(QTimerEvent *event) override
virtual voidwheelEvent(QWheelEvent *event) override

详细描述

该类被设计为像QSpinBoxQDoubleSpinBoxQDateTimeEdit这样的小部件的通用超类。

以下是该类的主要属性

  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会增加步进速率。《a href="qt.html#KeyboardModifier-enum" translate="no">Qt::NoModifier将禁用此功能。

QAbstractSpinBox还提供了一个虚函数stepEnabled()来确定在任何时刻是否允许上/下步进。该函数返回一个包含StepEnabled的bitset。

另请参阅QAbstractSliderQSpinBoxQDoubleSpinBoxQDateTimeEdit旋轮框示例

成员类型文档

enum QAbstractSpinBox::ButtonSymbols

枚举类型描述了可以显示在旋轮框按钮上的符号。

常量描述
QAbstractSpinBox::UpDownArrows0经典风格的微型箭头。
QAbstractSpinBox::PlusMinus1加号(+)和减号(-)符号。
QAbstractSpinBox::NoButtons2不显示按钮。

另请参阅QAbstractSpinBox::buttonSymbols

enum QAbstractSpinBox::CorrectionMode

枚举类型描述了旋轮框用于在编辑完成后纠正中值时将使用的模式。

常量描述
QAbstractSpinBox::CorrectToPreviousValue0旋轮框将回到最后一个有效值。
QAbstractSpinBox::CorrectToNearestValue1旋轮框将回到最近的有效值。

另请参阅correctionMode

enum QAbstractSpinBox::StepEnabledFlag
flags QAbstractSpinBox::StepEnabled

常量
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

StepEnabled类型是QFlags<StepEnabledFlag>的同义词。它存储了StepEnabledFlag值的OR组合。

enum QAbstractSpinBox::StepType

常量
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

属性文档

加速bool

此属性表示,当按下步进增加/减少按钮时,是否加速步进的频率。

如果启用,则步进框在按下按钮时间越长,值增加/减少的速度越快。

访问函数

boolisAccelerated() const
voidsetAccelerated(bool on)

[只读] acceptableInput : const bool

此属性表示输入是否满足当前验证。

访问函数

boolhasAcceptableInput() const

另请参阅validate()、fixupcorrectionMode

alignment : Qt::Alignment

此属性表示步进框的对齐方式。

可能值是Qt::AlignLeftQt::AlignRightQt::AlignHCenter

默认对齐方式为Qt::AlignLeft

尝试将对齐方式设置为非法标志组合组合不会产生影响。

访问函数

Qt::Alignmentalignment() const
voidsetAlignment(Qt::Alignment flag)

另请参阅Qt::Alignment

buttonSymbols : ButtonSymbols

此属性表示当前按钮符号模式。

可能值可以是UpDownArrowsPlusMinus。默认为UpDownArrows

请注意,某些样式可能会将PlusMinusUpDownArrows绘制成相同的样子。

访问函数

QAbstractSpinBox::ButtonSymbolsbuttonSymbols() const
voidsetButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)

另请参阅ButtonSymbols

correctionMode : CorrectionMode

此属性表示在编辑完成后,对Intermediate值进行纠正的模式。

默认模式是QAbstractSpinBox::CorrectToPreviousValue

访问函数

QAbstractSpinBox::CorrectionModecorrectionMode() const
voidsetCorrectionMode(QAbstractSpinBox::CorrectionMode cm)

另请参阅acceptableInputvalidatefixup

frame : bool

此属性表示步进框是否绘制有框架。

如果启用(默认),步进框将在框架内绘制自身;否则,步进框将无任何框架绘制。

访问函数

boolhasFrame() const
voidsetFrame(bool)

keyboardTracking : bool

此属性表示是否为步进框启用键盘跟踪。

如果启用了键盘跟踪(默认),步进框在新值从键盘输入时将发出valueChanged()和textChanged()信号。

例如,当用户通过输入6、0和0键入值600时,步进框将发出3个信号,分别带有值6、60和600。

如果禁用了键盘跟踪,步进框在输入时会发出valueChanged()和textChanged()信号。它会在稍后发出信号,比如在按回车键时,当键盘焦点丢失或在使用步进框的其他功能时,例如按箭头键。

访问函数

boolkeyboardTracking() const
voidsetKeyboardTracking(bool kt)

readOnly : bool

此属性表示是否启用单行编辑器的只读模式。

在只读模式下,用户仍然可以复制文本到剪贴板或拖放文本;但无法编辑。

QLineEdit中,当QAbstractSpinBox处于只读模式时,不显示光标。

访问函数

boolisReadOnly() const
voidsetReadOnly(bool r)

另请参阅QLineEdit::readOnly.

showGroupSeparator : bool

此属性表示是否启用了千位分隔符。默认情况下,此属性为false。

访问函数

boolisGroupSeparatorShown() const
voidsetGroupSeparatorShown(bool shown)

specialValueText : QString

此属性保存了特殊值的文本。

如果设置,则当当前值等于最小值时,单行编辑器将显示此文本而不是数值。典型用法是表示该选择具有特殊(默认)含义。

例如,如果您的单行编辑器允许用户选择图像的缩放因子(或缩放级别),并且您的应用程序能够自动选择一个可以在显示窗口内完全显示图像的缩放,则可以将单行编辑器设置如下

    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()返回空字符串。

访问函数

QStringspecialValueText() const
voidsetSpecialValueText(const QString &txt)

[只读] text : const QString

此属性保存单行编辑器文本,包括任何前缀和后缀

没有默认文本。

访问函数

QStringtext() const

wrapping : bool

此属性表示是否单行编辑器是循环的。

如果启用循环,则从最大值向上步进将带到最小值,反之亦然。当您设置了最小值和最大值时,循环才有意义。

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

访问函数

boolwrapping() const
voidsetWrapping(bool w)

另请参阅QSpinBox::minimum()和QSpinBox::maximum().

成员函数文档

[显式] QAbstractSpinBox::QAbstractSpinBox(QWidget *parent = nullptr)

使用指定的父对象 parent、默认的 包裹 和对齐属性 alignment 构建一个抽象的 QSpinBox 控件。

[虚无视异常] QAbstractSpinBox::~QAbstractSpinBox()

当 QAbstractSpinBox 被销毁时被调用。

[重写虚受保护] void QAbstractSpinBox::changeEvent(QEvent *event)

重写: QWidget::changeEvent(QEvent *event)。

[虚槽] void QAbstractSpinBox::clear()

清除所有文本(除前缀和后缀外)。

[重写虚受保护] void QAbstractSpinBox::closeEvent(QCloseEvent *event)

重写: QWidget::closeEvent(QCloseEvent *event)。

[重写虚受保护] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)

重写: QWidget::contextMenuEvent(QContextMenuEvent *event)。

[信号] void QAbstractSpinBox::editingFinished()

在编辑完成后发出此信号。当 spinbox 失去焦点或按下 Enter 键时发生。

[重写虚] bool QAbstractSpinBox::event(QEvent *event)

重写: QWidget::event(QEvent *event)。

[虚] void QAbstractSpinBox::fixup(QString &input) const

此虚函数在按下 Return 键或调用 interpretText() 时,当输入未通过验证为 QValidator::Acceptable 时由 QAbstractSpinBox 调用。它将尝试更改文本使其有效。在各个子类中重写。

[重写虚受保护] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)

重写: QWidget::focusInEvent(QFocusEvent *event)。

[重写虚受保护] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)

重写: QWidget::focusOutEvent(QFocusEvent *event)。

[重写虚受保护] void QAbstractSpinBox::hideEvent(QHideEvent *event)

重写: QWidget::hideEvent(QHideEvent *event)。

[虚受保护] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const

使用此QSpinBox的值初始化选项。此方法对子类很有用,当它们需要QStyleOptionSpinBox,但又不想自己填写所有信息时。

另请参阅QStyleOption::initFrom()。

[重载虚函数] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const

重写: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const

void QAbstractSpinBox::interpretText()

此函数解释旋转框的文本。如果自上次解释以来值已更改,它将发出信号。

[重载虚保护函数] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)

重写: QWidget::keyPressEvent(QKeyEvent *event)。

此函数处理键盘输入。

以下键被特别处理

Enter/Return这将会重新解释文本并发出信号,即使值在上次发出信号后没有更改。
这将调用stepBy(1)
这将调用stepBy(-1)
Page up这将会调用stepBy(10)
Page down这将会调用stepBy(-10)

另请参阅stepBy

[重载虚保护函数] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)

重写: QWidget::keyReleaseEvent(QKeyEvent *event)。

[保护] QLineEdit *QAbstractSpinBox::lineEdit() const

此函数返回旋转框的编辑指针。

另请参阅setLineEdit

[重载虚函数] QSize QAbstractSpinBox::minimumSizeHint() const

重写:属性访问函数:QWidget::minimumSizeHint

[重载虚保护函数] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)

重写: QWidget::mouseMoveEvent(QMouseEvent *event)。

[重载虚保护函数] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)

重写: QWidget::mousePressEvent(QMouseEvent *event)。

[重载虚保护函数] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)

重写: QWidget::mouseReleaseEvent(QMouseEvent *event)。

[重写虚保护] void QAbstractSpinBox::paintEvent(QPaintEvent *event)

重写: QWidget::paintEvent(QPaintEvent *event).

[重写虚保护] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)

重写: QWidget::resizeEvent(QResizeEvent *event).

[槽函数] void QAbstractSpinBox::selectAll()

选择除前缀和后缀以外的所有文本。

[保护] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)

将微调框的行编辑设置为 lineEdit,而不是当前行编辑小部件。lineEdit 不能为 nullptr

QAbstractSpinBox 拥有新的 lineEdit

如果 lineEditQLineEdit::validator() 返回 nullptr,则将微调框的内部验证器设置为行编辑。

另请参阅lineEdit().

[重写虚保护] void QAbstractSpinBox::showEvent(QShowEvent *event)

重写: QWidget::showEvent(QShowEvent *event).

[重写虚] QSize QAbstractSpinBox::sizeHint() const

重写获取属性的访问函数: QWidget::sizeHint.

[虚函数] void QAbstractSpinBox::stepBy(int steps)

在用户触发步骤时调用的虚函数。参数 steps 表示执行了几个步骤。例如,按下 Qt::Key_Down 将触发对 stepBy(-1) 的调用,而按下 Qt::Key_PageUp 将触发对 stepBy(10) 的调用。

如果你是 QAbstractSpinBox 的子类,你必须重写此函数。注意,即使在结果值超出最小和最大值范围的情况下,此函数也会被调用。该函数的职责是要处理这些情况。

另请参阅stepUp(),stepDown() 和 keyPressEvent().

[槽函数] void QAbstractSpinBox::stepDown()

按行步退。调用此插槽相当于调用 stepBy(-1);

另请参阅stepBy() 和 stepUp().

[虚拟受保护的] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const

确定在给定时间是否可以执行上移和下移的虚拟函数。

除非 (stepEnabled() & StepUpEnabled) != 0,否则向上箭头将显示为禁用。

默认实现将在启用翻滚时返回 (StepUpEnabled| StepDownEnabled)。否则,如果值大于 minimum(),则返回 StepDownEnabled;如果值小于最大值,则与 StepUpEnabled 进行或运算。

如果你派生了 QAbstractSpinBox,则需要重新实现此函数。

另请参阅QSpinBox::minimum(),QSpinBox::maximum(),以及 wrapping()。

[槽函数] void QAbstractSpinBox::stepUp()

通过一行步进。调用此槽等同于调用 stepBy(1);

另请参阅stepBy() 和 stepDown()。

[覆盖虚拟受保护的] void QAbstractSpinBox::timerEvent(QTimerEvent *event)

重实现: QObject::timerEvent(QTimerEvent *event).

[虚拟] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const

此虚拟函数由 QAbstractSpinBox 调用来确定输入是否有效。参数 pos 表示字符串中的位置。在各个派生类中有实现。

[覆盖虚拟受保护的] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)

重实现: QWidget::wheelEvent(QWheelEvent *event).

© 2024 Qt 公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 及相关标志是芬兰和/或其他国家/地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。