PySide6.QtWidgets.QSpinBox

class QSpinBox

QSpinBox 类提供了一个微调框小部件。更多

PySide6.QtWidgets.QSpinBox 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

../../_images/fusion-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,点击“向上”将给出0,如果wrapping()设置为true。如果您想要循环行为,请使用setWrapping()

显示的值可以附加任意字符串,例如货币或测量单位。参见 setPrefix()setSuffix()。微调框中的文本可以通过 text() 获取(包括任何 prefix()suffix()),或者通过 cleanText() 获取(没有 prefix(),没有 suffix(),也没有前导或尾随的空格)。

除了数值范围之外,通常还希望为用户提供一个特殊(通常是默认)的选择。有关如何使用QSpinBox实现这一点,请参见setSpecialValueText()

子类化 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)

另请参阅

QDoubleSpinBox QDateTimeEdit QSlider Spin Boxes 示例

注意

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

property cleanTextᅟ: str

此属性保存旋转框的文本,不包括任何前缀、后缀或前导或尾随空格。

另请参阅

text prefix suffix

Access functions:
property displayIntegerBaseᅟ: int

此属性用于保存用于显示微调框值的基数。

默认的displayIntegerBase值为10。

Access functions:
property maximumᅟ: int

此属性保存旋转框的最大值。

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

默认的最大值是99。

Access functions:
property minimumᅟ: int

此属性保存旋转框的最小值。

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

默认最小值为0。

Access functions:
property prefixᅟ: str

警告

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

此属性保存旋转框的前缀。

前缀会添加到显示值的开头。典型用途是显示测量单位或货币符号。例如:

sb.setPrefix("$")

要关闭前缀显示,请将此属性设置为空字符串。默认情况下没有前缀。当value() == minimum()且设置了specialValueText()时,前缀不会显示。

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

Access functions:
property singleStepᅟ: int

此属性保存步长值。

当用户使用箭头更改微调框的值时,该值将按singleStep的量递增/递减。默认值为1。设置小于0的singleStep值无效。

Access functions:
property stepTypeᅟ: QAbstractSpinBox.StepType

此属性保存步长类型。

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

Access functions:
property suffixᅟ: str

警告

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

此属性保存微调框的后缀。

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

sb.setSuffix(" km")

要关闭后缀显示,请将此属性设置为空字符串。默认情况下没有后缀。如果设置了specialValueText(),则不会显示minimum()的后缀。

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

Access functions:
property valueᅟ: int

此属性保存旋转框的值。

setValue() 如果新值与旧值不同,将发出 valueChanged()。value 属性有第二个通知信号,包括微调框的前缀和后缀。

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

构造一个最小值为0,最大值为99,步进值为1的微调框。初始值设置为0。它的父对象是parent

cleanText()
Return type:

字符串

属性 cleanTextᅟ 的获取器。

displayIntegerBase()
Return type:

整数

属性 displayIntegerBaseᅟ 的获取器。

maximum()
Return type:

整数

另请参阅

setMaximum()

属性 maximumᅟ 的获取器。

minimum()
Return type:

整数

另请参阅

setMinimum()

属性 minimumᅟ 的获取器。

prefix()
Return type:

字符串

另请参阅

setPrefix()

属性 prefixᅟ 的获取器。

setDisplayIntegerBase(base)
Parameters:

base – 整数

另请参阅

displayIntegerBase()

属性 displayIntegerBaseᅟ 的设置器。

setMaximum(max)
Parameters:

max – 整数

另请参阅

maximum()

属性 maximumᅟ 的设置器。

setMinimum(min)
Parameters:

min – 整数

另请参阅

minimum()

属性 minimumᅟ 的设置器。

setPrefix(prefix)
Parameters:

prefix – str

另请参阅

prefix()

属性 prefixᅟ 的设置器。

setRange(min, max)
Parameters:
  • min – int

  • max – int

警告

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

方便的函数,通过一次函数调用设置minimummaximum值。

setRange(minimum, maximum)

等同于:

setMinimum(minimum)
setMaximum(maximum)

另请参阅

minimum maximum

setSingleStep(val)
Parameters:

val – 整数

另请参阅

singleStep()

属性 singleStepᅟ 的设置器。

setStepType(stepType)
Parameters:

stepTypeStepType

将微调框的步长类型设置为stepType,即单步或自适应十进制步长。

自适应十进制步长意味着步长将不断调整到当前value的十分之一。因此,当值为1100时,步长设置为100,因此增加一次会将其增加到1200。对于1200,增加一次会将其增加到1300。对于负值,从-1100减少一次会变为-1200。

考虑到步进方向以处理边缘情况,因此从100向下步进会将值变为99而不是90。因此,先向上步进再向下步进——或反之——总是会回到起始值;99 -> 100 -> 99。

设置此选项将导致微调框忽略singleStep的值,尽管它会被保留,以便在稍后关闭自适应小数步长时singleStep生效。

另请参阅

stepType()

属性 stepTypeᅟ 的设置器。

setSuffix(suffix)
Parameters:

suffix – str

另请参阅

suffix()

属性 suffixᅟ 的设置器。

setValue(val)
Parameters:

val – 整数

另请参阅

value()

属性 valueᅟ 的设置器。

singleStep()
Return type:

整数

另请参阅

setSingleStep()

属性 singleStepᅟ 的获取器。

stepType()
Return type:

StepType

另请参阅

setStepType()

属性 stepTypeᅟ 的获取器。

suffix()
Return type:

字符串

另请参阅

setSuffix()

属性 suffixᅟ 的获取器。

textChanged(text)
Parameters:

文本 – str

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

textFromValue(val)
Parameters:

val – 整数

Return type:

字符串

每当微调框需要显示给定的value时,都会使用此虚拟函数。默认实现返回一个字符串,其中包含使用locale() .toString()以标准方式打印的value,但除非设置了setGroupSeparatorShown(),否则会删除千位分隔符。重新实现可以返回任何内容。(请参阅详细描述中的示例。)

注意:QSpinBox 不会为 specialValueText() 调用此函数,并且返回值中不应包含 prefix()suffix()

如果你重新实现这个,你可能也需要重新实现 valueFromText()validate()

另请参阅

valueFromText() validate() groupSeparator()

value()
Return type:

整数

另请参阅

setValue()

属性 valueᅟ 的获取器。

valueChanged(i)
Parameters:

i – 整数

每当微调框的值发生变化时,就会发出此信号。新值的整数值在i中传递。

属性 valueᅟ 的通知信号。

valueFromText(text)
Parameters:

文本 – str

Return type:

整数

每当微调框需要将用户输入的text解释为值时,就会使用此虚拟函数。

需要以非数字方式显示微调框值的子类需要重新实现此函数。

注意:QSpinBox 单独处理 specialValueText();此函数仅涉及其他值。

另请参阅

textFromValue() validate()