在上一章我总结了QSpinBox的使用方法,QSpinBox是用来操作整数或离散集合的,还有另外一种控件是用来操作浮点类数据的,就是QDoubleSpinBox。
一.描述
QDoubleSpinBox和QSpinBox的用法基本一致,都是继承自QAbstractSpinBox这个父类的,既可以通过步长调节按钮调整数值,也得以通过键盘给文本框直接赋值。
二.功能作用
1.构造函数
可以直接声明控件,声明的控件默认状态是0-99.99,步长是1.0
2.设置范围
#设置 QDoubleSpinBox.setMaximum() QDoubleSpinBox.setMinimum() QDoubleSpinBox.setRange() #获取 QDoubleSpinBox.maximum() QDoubleSpinBox.minimum()
3.设置步长
#设置 QDoubleSpinBox.setSingleStep() #获取 QDoubleSpinBox.singleStep() #——>float
4.设置前缀和后缀
#设置 QDoubleSpinBox.setPrefix() #前缀 QDoubleSpinBox.setSuffix() #后缀 #获取 QDoubleSpinBox.prefix() QDoubleSpinBox.suffix()
5.最小值对应文本
#设置 QDoubleSpinBox.setSpecialValueText() #获取 QDoubleSpinBox.specialValueText() #——>str
6.显示精度(小数位数)
#设置 QDoubleSpinBox.setDecimals(int) #获取 QDoubleSpinBox.decimals() #——>int
7.设置和获取数值
#设置 QDoubleSpinBox.setValue(int) #获取 QDoubleSpinBox.value() #——>float QDoubleSpinBox.cleanText() #——>str获取的不含前后缀、尾随空格等的数值部分的字符串
而如果用父类的
QDoubleSpinBox.text()
获取值则返回的是文本框里显示的状态,包含各种前后缀和空格等字符
8.自定义样式
和QSpinBox的方式一样,对函数进行重构后对这个重写的类实例化调用就好了
class MyDoubleSpinBox(QDoubleSpinBox): def textFromValue(self, v: float): return v
三.信号
和QSpinBox控件一样的,只不过发送的信号是float的。注意一点
QDoubleSpinBox.valueChanged(int)
QDoubleSpinBox.valueChanged(str)
这两个信号是一样的,但是所携带的参数不同,就是说下面的信号是上面的信号的重载。而不是说他是一个过期的用法。举个例子,是这样使用的
QDoubleSpinBox.valueChanged[str].connect(lambda val:print(val,type(val)))
加了[]就是告诉信号要携带的参数类型是字符串(默认的是float)