PySide6.QtWidgets.QDoubleSpinBox

class QDoubleSpinBox

QDoubleSpinBox 类提供了一个用于输入双精度浮点数的微调框部件。更多

PySide6.QtWidgets.QDoubleSpinBox 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

../../_images/fusion-doublespinbox.png

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

每次值变化时,QDoubleSpinBox 会发出 valueChanged()textChanged() 信号,前者提供一个 double 值,后者提供一个 QString。 textChanged() 信号提供包含 prefix()suffix() 的值。当前值可以通过 value() 获取,并通过 setValue() 设置。

注意:QDoubleSpinBox 会对数字进行四舍五入,以便它们可以以当前的精度显示。在设置为2位小数的QDoubleSpinBox中,调用setValue (2.555) 将导致value() 返回2.56。

点击上下按钮或使用键盘加速器的上下箭头将以singleStep()的大小逐步增加或减少当前值。如果你想改变这种行为,你可以重新实现虚函数stepBy()。最小值和最大值以及步长可以通过其中一个构造函数设置,并且可以稍后使用setMinimum()setMaximum()setSingleStep()进行更改。spinbox默认的精度为2位小数,但可以使用setDecimals()进行更改。

大多数微调框是定向的,但QDoubleSpinBox也可以作为循环微调框操作,即如果范围是0.0-99.9且当前值是99.9,当wrapping()设置为true时,点击“向上”将得到0。如果您想要循环行为,请使用setWrapping()

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

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

注意

QDoubleSpinBox 的显示值除了可能的前缀和后缀内容外,限制为18个字符。此限制用于确保即使在数值极大的情况下,双精度旋转框仍可使用。

另请参阅

QSpinBox QDateTimeEdit QSlider 旋转框示例

注意

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

property cleanTextᅟ: str

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

另请参阅

text prefix suffix

Access functions:
property decimalsᅟ: int

此属性保存微调框的精度,以小数表示。

设置微调框将使用多少位小数来显示和解释双精度数。

警告

decimals 的最大值是 DBL_MAX_10_EXP + DBL_DIG(即 323),这是由于 double 类型的限制。

注意:最大值、最小值和值可能会因更改此属性而发生变化。

Access functions:
property maximumᅟ: float

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

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

默认的最大值是99.99。

注意:最大值将被四舍五入以匹配小数位数属性。

另请参阅

decimals setRange()

Access functions:
property minimumᅟ: float

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

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

默认最小值为0.0。

注意:最小值将被四舍五入以匹配小数位数属性。

Access functions:
property prefixᅟ: str

警告

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

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

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

spinbox.setPrefix("$")

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

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

Access functions:
property singleStepᅟ: float

此属性保存步长值。

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

Access functions:
property stepTypeᅟ: QAbstractSpinBox.StepType

此属性保存步长类型。

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

Access functions:
property suffixᅟ: str

警告

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

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

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

spinbox.setSuffix(" km")

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

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

Access functions:
property valueᅟ: float

此属性保存旋转框的值。

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

注意:该值将被四舍五入,以便可以使用当前的小数设置显示。

另请参阅

decimals

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

父级QWidget

构造一个最小值为0.0,最大值为99.99的微调框,步进值为1.0,精度为2位小数。初始值设置为0.00。该微调框具有给定的parent

cleanText()
Return type:

字符串

属性 cleanTextᅟ 的获取器。

decimals()
Return type:

整数

另请参阅

setDecimals()

属性 decimalsᅟ 的获取器。

maximum()
Return type:

浮点数

另请参阅

setMaximum()

属性 maximumᅟ 的获取器。

minimum()
Return type:

浮点数

另请参阅

setMinimum()

属性 minimumᅟ 的获取器。

prefix()
Return type:

字符串

另请参阅

setPrefix()

属性 prefixᅟ 的获取器。

setDecimals(prec)
Parameters:

prec – 整数

另请参阅

decimals()

属性 decimalsᅟ 的设置器。

setMaximum(max)
Parameters:

max – 浮点数

另请参阅

maximum()

属性 maximumᅟ 的设置器。

setMinimum(min)
Parameters:

min – 浮点数

另请参阅

minimum()

属性 minimumᅟ 的设置器。

setPrefix(prefix)
Parameters:

prefix – str

另请参阅

prefix()

属性 prefixᅟ 的设置器。

setRange(min, max)
Parameters:
  • min – 浮点数

  • max – 浮点数

警告

本节包含从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。

它也适用于任何十进制值,0.041 通过一次步进增加到 0.042。

考虑到步进方向以处理边缘情况,因此从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, u'f', decimals())打印的value,并且除非设置了setGroupSeparatorShown(),否则将删除千位分隔符。重新实现可以返回任何内容。

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

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

value()
Return type:

浮点数

另请参阅

setValue()

属性 valueᅟ 的获取器。

valueChanged(d)
Parameters:

d – 浮点数

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

属性 valueᅟ 的通知信号。

valueFromText(text)
Parameters:

文本 – str

Return type:

浮点数

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

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

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

另请参阅

textFromValue() validate()