QAbstractSpinBox 类提供自旋框和行编辑,以显示值。 更多...
头: | #include <QAbstractSpinBox> |
qmake: | QT += widgets |
继承: | QWidget |
继承者: |
enum | ButtonSymbols { UpDownArrows, PlusMinus, NoButtons } |
enum | CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue } |
flags | StepEnabled |
enum | StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled } |
enum | 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 |
此类被设计作为 Widget 的通用超类像 QSpinBox , QDoubleSpinBox and QDateTimeEdit
这里是类的主要特性:
QAbstractSpinBox 提供虚拟 stepBy () 函数被调用每当用户触发步进时。此函数接受表示已走了多少步的整数值。如:按下 Qt::Key_Down 将触发调用 stepBy (-1).
当用户触发步进时的同时按住 Qt::ControlModifier ,QAbstractSpinBox 步进 10 而不是单步。此步进修饰符影响滚轮事件、键事件及与自旋框按钮的交互。注意:在 macOS,Ctrl 键相当于 Command 键。
从 Qt 5.12 起, QStyle::SH_SpinBox_StepModifier 可以用来选择 Qt::KeyboardModifier 递增步幅速率。 Qt::NoModifier 禁用此特征。
QAbstractSpinBox 还提供虚函数 stepEnabled () 以确定在任何时候是否允许向上/向下步进。此函数返回位集的 StepEnabled .
另请参阅 QAbstractSlider , QSpinBox , QDoubleSpinBox , QDateTimeEdit ,和 自旋框范例 .
此枚举类型描述可以在自旋框按钮中显示的符号。
常量 | 值 | 描述 |
---|---|---|
QAbstractSpinBox::UpDownArrows
|
0
|
经典风格小箭头。 |
QAbstractSpinBox::PlusMinus
|
1
|
+ and - 符号。 |
QAbstractSpinBox::NoButtons
|
2
|
不显示按钮。 |
另请参阅 QAbstractSpinBox::buttonSymbols .
此枚举类型描述的自旋框模式用于校正 中间体 值若编辑完成。
常量 | 值 | 描述 |
---|---|---|
QAbstractSpinBox::CorrectToPreviousValue
|
0
|
自旋框将恢复到最后有效值。 |
QAbstractSpinBox::CorrectToNearestValue
|
1
|
自旋框将恢复到最近有效值。 |
另请参阅 correctionMode .
常量 | 值 |
---|---|
QAbstractSpinBox::StepNone
|
0x00
|
QAbstractSpinBox::StepUpEnabled
|
0x01
|
QAbstractSpinBox::StepDownEnabled
|
0x02
|
StepEnabled 类型是 typedef 对于 QFlags <StepEnabledFlag>。它存储 StepEnabledFlag 值的 OR 组合。
常量 | 值 |
---|---|
QAbstractSpinBox::DefaultStepType
|
0
|
QAbstractSpinBox::AdaptiveDecimalStepType
|
1
|
此特性保持自旋框是否会增加步进的频率,当按下向上/向下步进按钮时。
若启用,自旋框会更快地递增/递减值,当按下按钮时间越长时。
该特性在 Qt 4.2 引入。
访问函数:
bool | isAccelerated () const |
void | setAccelerated (bool on ) |
此特性保持输入是否满足当前验证
该特性在 Qt 4.2 引入。
访问函数:
bool | hasAcceptableInput () const |
另请参阅 validate (), fixup (),和 correctionMode .
此特性保持自旋框的对齐方式
可能的值是 Qt::AlignLeft , Qt::AlignRight ,和 Qt::AlignHCenter .
默认情况下,对齐方式为 Qt::AlignLeft
试图把对齐方式设为非法标志的组合,会什么都不做。
访问函数:
Qt::Alignment | alignment () const |
void | setAlignment (Qt::Alignment flag ) |
另请参阅 Qt::Alignment .
此特性保持当前按钮的符号模式
可能值可以是
UpDownArrows
or
PlusMinus
。默认为
UpDownArrows
.
注意:某些风格可能渲染 PlusMinus and UpDownArrows 同等。
访问函数:
QAbstractSpinBox::ButtonSymbols | buttonSymbols () const |
void | setButtonSymbols (QAbstractSpinBox::ButtonSymbols bs ) |
另请参阅 ButtonSymbols .
此特性保持的模式用于校正 中间体 值若编辑完成
默认模式为 QAbstractSpinBox::CorrectToPreviousValue .
该特性在 Qt 4.2 引入。
访问函数:
QAbstractSpinBox::CorrectionMode | correctionMode () const |
void | setCorrectionMode (QAbstractSpinBox::CorrectionMode cm ) |
另请参阅 acceptableInput , validate (),和 fixup ().
此特性保持自旋框是否采用框架绘制自身
若启用 (默认),自旋框在框架内绘制自身,否则自旋框在没有任何框架的情况下绘制自身。
访问函数:
bool | hasFrame () const |
void | setFrame ( bool ) |
此特性保持是否为自旋框启用键盘跟踪。
若键盘追踪被启用 (默认),自旋框会发射 valueChanged() 和 textChanged() 信号,当正从键盘键入新值时。
如:当用户通过键入 6, 0 和 0 输入值 600 时,自旋框会分别发射 6, 60 和 600 3 个信号。
若键盘追踪被禁用,自旋框不会发射 valueChanged() 和 textChanged() 信号当键入时。它稍后会发射信号,当按下 Return 键时、当键盘丢失聚焦时,或当使用其它自旋框功能时 (如:按下箭头键时)。
该特性在 Qt 4.3 引入。
访问函数:
bool | keyboardTracking () const |
void | setKeyboardTracking (bool kt ) |
此特性保持自旋框是否为只读。
在只读模式下,用户仍可以将文本拷贝到剪贴板,或拖放文本;但无法编辑它。
The QLineEdit 在 QAbstractSpinBox 在只读模式下不展示光标。
访问函数:
bool | isReadOnly () const |
void | setReadOnly (bool r ) |
另请参阅 QLineEdit::readOnly .
此特性保持是否启用千位分隔符。默认情况下,此特性为 false。
该特性在 Qt 5.3 引入。
访问函数:
bool | isGroupSeparatorShown () const |
void | setGroupSeparatorShown (bool shown ) |
此特性保持特殊值文本
若设置,自旋框会显示此文本而非数字值,在当前值等于 minimum() 时。典型用途是指示此抉择具有特殊 (默认) 含义。
例如,若自旋框允许用户选取比例因子 (或缩放级别) 为显示图像,且应用程序能够自动选取允许把图像完整拟合在显示窗口中的某一值,就可以像这样设置自旋框:
QSpinBox *zoomSpinBox = new QSpinBox; zoomSpinBox->setRange(0, 1000); zoomSpinBox->setSingleStep(10); zoomSpinBox->setSuffix("%"); zoomSpinBox->setSpecialValueText(tr("Automatic")); zoomSpinBox->setValue(100);
接着,用户将能在 1% 到 1000% 之间选取比例,或选择 Auto 以将其留给应用程序去选取。然后,代码必须把自旋框 0 值解释为来自用户的请求,以缩放图像为拟合在窗口内。
所有被显示值带前缀和后缀 (若有设置), except 为特殊值,仅展示特殊值文本。此特殊文本被传入 QSpinBox::textChanged () 信号传递 QString .
要关闭特殊值文本显示,调用此函数采用空字符串。默认为无特殊值文本 (即:照常展示数字值)。
specialValueText() 返回空字符串,若未设置特殊值文本。
访问函数:
QString | specialValueText () const |
void | setSpecialValueText (const QString & txt ) |
此特性保持自旋框的文本,包括任何前缀和后缀
没有默认文本。
访问函数:
QString | text () const |
此特性保持自旋框是否循环。
若环绕为 true,从 maximum() 值向上步进会到 minimum() 值,反之亦然。环绕才有意义,若有设置 maximum() 和 minimum() 值。
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 ().
构造抽象 Spinbox 采用给定 parent 采用默认 wrapping ,和 alignment 特性。
[virtual slot]
void
QAbstractSpinBox::
clear
()
清零所有文本的 lineedit,除前缀和后缀外。
[signal]
void
QAbstractSpinBox::
editingFinished
()
此信号被发射,当编辑完成时。这会发生,当旋转框丢失聚焦和当按下 Enter 键时。
[slot]
void
QAbstractSpinBox::
selectAll
()
选择自旋框中的所有文本,除前缀和后缀外。
[slot]
void
QAbstractSpinBox::
stepDown
()
往下走一步,调用此槽类似于调用 stepBy (-1);
[slot]
void
QAbstractSpinBox::
stepUp
()
向上走一步,调用此槽类似于调用 stepBy (1);
[虚拟]
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).
[虚拟]
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.
此函数解释自旋框的文本。若值从上次解释以来已改变,它会发射信号。
[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
而不是当前行编辑 Widget。
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 .
[虚拟]
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).
[虚拟]
QValidator::State
QAbstractSpinBox::
validate
(
QString
&
input
,
int
&
pos
) const
此虚函数的调用是通过 QAbstractSpinBox 以确定是否 input 有效。 pos 参数以字符串形式指示位置。重实现在各种子类。
[override virtual protected]
void
QAbstractSpinBox::
wheelEvent
(
QWheelEvent
*
event
)
重实现: QWidget::wheelEvent (QWheelEvent *event).