在上一章我總結了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)