class QSpinBox#

QSpinBox类提供了一个带旋钮的窗口部件。更多信息

Inheritance diagram of PySide6.QtWidgets.QSpinBox

摘要#

属性#

方法

虚方法

槽(Slots)

信号(Signals)

注意

本文档可能包含从C++自动翻译到Python的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译中存在任何问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细说明#

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

../../_images/windows-spinbox.png

QSpinBox 用于处理整数和离散值集(例如,月份名称);对于浮点数请使用 QDoubleSpinBox

QSpinBox 允许用户通过点击上下按钮或按键盘上的上下键来增加或减少当前显示的值来选择值。用户也可以手动输入值。该微调框支持整数值,但可以通过 validate()textFromValue()valueFromText() 方法使用不同的字符串来扩展。

每次值变化时,QSpinBox 会发出 valueChanged()textChanged() 信号,前者提供一个 int 类型的值,后者提供一个 QString 类型的值。textChanged() 信号提供了带有 prefix()suffix() 的值。当前值可以通过 value() 检索,通过 setValue() 设置。

点击上下按钮或使用键盘快捷键的方向键可以增加或减少当前值,每次增加或减少的步长大小为 singleStep() .如需更改此行为,可以重写虚拟函数 stepBy() .最小值、最大值和步长大小可以通过构造函数之一设置,并且可以在后续通过 setMinimum()setMaximum()setSingleStep() 移除。

大多数微调框都是方向性的,但 QSpinBox 也可以作为一个循环微调框来操作,即如果范围为0-99,并且当前值为99,则如果 wrapping() 设置为 true,则点击“上”将给出0。若你想实现循环行为则使用 setWrapping() .

显示的值可以通过任意字符串进行前后附加,例如表示货币或测量单位。请参阅 setPrefix()setSuffix() 以了解更多信息。通过 text() (包含任何 prefix()suffix() )或通过 cleanText() (不包括前缀、后缀以及前导和尾部空格)来检索微调框中的文本。

通常需要在除了数值范围外给出一个特殊(通常是默认的)选择。请参阅 setSpecialValueText() 了解如何在 QSpinBox 中实现此功能。

QSpinBox的子类化#

如果使用 prefix()suffix()specialValueText() 不能提供足够控制,可以继承 QSpinBox 并重新实现 valueFromText()textFromValue() 方法。例如,下面是一个自定义的滚动框代码,允许用户输入图标大小(例如,“32 x 32”)。

def valueFromText(self, QString text):

    regExp = QRegularExpression(tr("(\\d+)(\\s*[xx]\\s*\\d+)?"))
    Q_ASSERT(regExp.isValid())
    match = regExp.match(text)
    if match.isValid():
        return match.captured(1).toInt()
    return 0

def textFromValue(self, int value):

    return tr("%1 x %1").arg(value)

注意

当使用 from __feature__ import true_property 时,可以直接使用属性,否则可以通过访问函数使用。

property cleanTextᅟ: str#

此属性保存了滚动框的文本,排除了任何前缀、后缀或前导和尾随空格。

参见

text prefix suffix

访问函数
property displayIntegerBaseᅟ: int#

此属性保存用于显示滚动框值的基数。

默认的 displayIntegerBase 值为 10。

访问函数
property maximumᅟ: int#

此属性保存滚动框的最大值。

设置此属性时,如有必要,将调整最小值,以确保范围有效。

默认最大值为 99。

访问函数
属性 minimum: int#

此属性保存了滚动框的最小值。

在设置此属性时,如果需要,将调整 maximum 以确保范围保持有效。

默认最小值为0。

访问函数
属性 prefix: str#

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存了滚动框的前缀。

前缀将被添加到显示值的起始位置。典型用途是显示度量单位或货币符号。例如

sb.setPrefix("$")

要关闭前缀显示,将此属性设置为空字符串。默认没有前缀。当 value == minimumspecialValueText 已设置时,前缀不会显示。

如果没有设置前缀,prefix() 返回空字符串。

访问函数
属性 singleStep: int#

此属性保存步进值。

当用户使用箭头更改滚动框的值时,值将增加/减少singleStep的量。默认值是1。设置为小于0的singleStep值将不会执行任何操作。

访问函数
属性 stepType: QAbstractSpinBox.StepType#

此属性保存步进类型。

步进类型可以是单步或自适应小数步进。

访问函数
属性 suffix: str#

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存滚动框的后缀。

后缀将附加到显示值的末尾。典型用法是显示测量单位或货币符号。例如

sb.setSuffix(" km")

要关闭后缀显示,将此属性设置为空字符串。默认值为无后缀。如果设置了 minimum(),则不会显示 specialValueText()

如果没有设置后缀,suffix() 返回空字符串。

访问函数
属性 value₎: int#

此属性存储滚动框的值。

如果新值与旧值不同,setValue() 将发出 valueChanged()。该 value 属性还有一个包含滚动框前缀和后缀的第二个通知信号。

访问函数
__init__([parent=None])#
参数:

parentQWidget

使用最小值 0、最大值 99 和步长 1 构建滚动框,初始值为 0。它将 parent 作为父对象。

cleanText()#
返回类型:

str

getter 属性 cleanText

displayIntegerBase()#
返回类型:

int

属性 displayIntegerBase 的获取器。

maximum()#
返回类型:

int

参见

setMaximum()

属性 maximum 的获取器。

minimum()#
返回类型:

int

参见

setMinimum()

属性 minimum 的获取器。

prefix()#
返回类型:

str

参见

setPrefix()

属性 prefix 的获取器。

setDisplayIntegerBase(base)#
参数:

base – int

属性 displayIntegerBase 的设置器。

setMaximum(max)#
参数:

max – int

参见

maximum()

属性 maximum 的设置器。

setMinimum(min)#
参数:

min – int

参见

minimum()

属性 minimum 的设置器。

setPrefix(prefix)#
参数:

prefix – str

参见

prefix()

属性 prefix 的设置器。

setRange(min, max)#
参数:
  • min – int

  • max – int

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

通过单个函数调用来设置最小值和最大值的便利函数。

setRange(minimum, maximum)

等同于

setMinimum(minimum)
setMaximum(maximum)

参见

minimum maximum

setSingleStep(val)#
参数:

val – int

参见

singleStep()

属性 singleStep 的设置器。

setStepType(stepType)#
参数:

stepTypeStepType

设置滚动框的步进类型为 stepType,可以是单步或自适应十进制步进。

自适应十进制步进意味着步长会连续调整到当前 value 的十的幂以下。因此,当值为1100时,步长设置为100,所以单击一次增加使其变为1200。对于1200,单击一次将其增加到1300。对于负值,从-1100向下步进到-1200。

在处理边缘情况时考虑了步进方向,因此从100向下步进将值变为99而不是90。因此,向上然后向下步进(或反之)始终落在起始值;99 -> 100 -> 99。

设置此选项将导致滚动框忽略 singleStep 的值,尽管它被保留,以便 singleStep 在自适应十进制步进关闭后生效。

参见

stepType()

属性 stepType 的设置器。

setSuffix(suffix)#
参数:

suffix – str

参见

suffix()

属性 suffix 的设置器。

setValue(val)#
参数:

val – int

参见

value()

属性 value 的设置器。

singleStep()#
返回类型:

int

属性 singleStep 的获取器。

stepType()#
返回类型:

StepType

参见

setStepType()

属性 stepTypeᅟ 的获取器。

suffix()#
返回类型:

str

参见

setSuffix()

属性 suffixᅟ 的获取器。

textChanged(arg__1)#
参数:

arg__1 – 字符串

当自旋框的文本发生变化时,会发出此信号。新文本通过 text 传递,并带有 prefix()suffix()

textFromValue(val)#
参数:

val – int

返回类型:

str

此虚函数在需要显示提供的 value 时由自旋框使用。默认实现返回一个包含 value 的字符串,该字符串以标准方式使用 locale() .toString() 打印,但如果没有设置 setGroupSeparatorShown(),则不会包含千位分隔符。重写可能返回任何内容。(请参见详细描述中的示例。)

注意: QSpinBox 不会为 specialValueText() 调用此函数,并且不应对 prefix()suffix() 进行包含。

如果你重写此方法,可能还需要重写 valueFromText()validate()

value()#
返回类型:

int

参见

setValue()

属性 valueᅟ 的获取器。

valueChanged(arg__1)#
参数:

arg__1 – int

每次旋钮框的值更改时都会发出此信号。新值的整数值通过 i 传递。

属性 valueᅟ 的通知信号。

valueFromText(text)#
参数:

text – str

返回类型:

int

此虚拟函数在旋钮框需要将用户输入的 text 解释为值时使用。

需要以非数字方式显示旋钮框值的自定义类需要重新实现此函数。

注意: QSpinBox 专门处理 specialValueText();此函数仅关注其他值。

参见

textFromValue() validate()