Fix 03-10-02-02

QSpinBox-加入「步类型」、将「前后缀」移至03中
This commit is contained in:
muzing 2022-08-24 20:17:55 +08:00
parent 138c3c59e2
commit de869809f2

View File

@ -22,15 +22,20 @@ QSpinBox
.setSingleStep(val: int) 设置单步步长 .setSingleStep(val: int) 设置单步步长
.singleStep() -> int 获取当前单步步长 .singleStep() -> int 获取当前单步步长
=================================== 步类型 ===================================
除指定单步步长外还可以通过将步类型改变为自适应小数步来调整步长
启用AdaptiveDecimalStepType自适应小数步后步长将变成当前值的低一位
例如当前值为12000则步长变为1000当前值为120步长变为10
更多详细信息请参考文档https://doc.qt.io/qt-6/qspinbox.html#setStepType
=================================== 前后缀 =================================== .setStepType(QAbstractSpinBox.StepType)
在数值设定框的LineEdit中除了显示纯数值还可以为数值添加前后缀 .stepType() -> QAbstractSpinBox.StepType
实现例如 $20045kg 等效果注意调用text()方法时会获取包含前后缀的完整文本
QAbstractSpinBox.StepType枚举值有如下两种类型
https://doc.qt.io/qt-6/qabstractspinbox.html#StepType-enum
QAbstractSpinBox.DefaultStepType
QAbstractSpinBox.AdaptiveDecimalStepType
.setPrefix(prefix: str) 设置前缀字符串
.setSuffix(suffix: str) 设置后缀字符串
.prefix() -> str 获取前缀
.suffix() -> str 获取后缀
""" """
@ -49,20 +54,18 @@ class MyWidget(QtWidgets.QWidget):
spinbox.move(200, 200) spinbox.move(200, 200)
# 设置数值范围 # 设置数值范围
# spinbox.setRange(100, 200) # 等价于下面两行 # spinbox.setRange(10, 2000) # 等价于下面两行
spinbox.setMaximum(200) spinbox.setMaximum(2000)
spinbox.setMinimum(100) spinbox.setMinimum(10)
print(f"数值范围的最大值为{spinbox.maximum()}") print(f"数值范围的最大值为{spinbox.maximum()}")
# 设置单步步长 # 设置单步步长
spinbox.setSingleStep(10) # 每次增加/减少10 spinbox.setSingleStep(10) # 每次增加/减少10
print(f"目前的单步步长为{spinbox.singleStep()}") print(f"目前的单步步长为{spinbox.singleStep()}")
# 设置前后缀 # 设置步类型
spinbox.setSuffix(" cm") # 设置后缀 # 注意启用自适应小数步后,之前设置的单步步长失效
# spinbox.setPrefix("$ ") # 设置前缀 spinbox.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType)
print(f"完整文本为{spinbox.text()}") # 获取文本时会获取到包含前后缀的完整文本
print(f"数值为{spinbox.text().removesuffix(spinbox.suffix())}") # Python3.9提供的移除后缀方法
if __name__ == "__main__": if __name__ == "__main__":