1、QDoubleSpinBox:可以设置小数位数、继承于QAbstractSpinBox。
def setup_ui(self):
dsb = QDoubleSpinBox(self)
dsb.move(100, 100)
dsb.resize(100, 30)
2、设置数值范围、数值循环、设置步长、前缀和后缀、最小值对应的特殊文本:
def setup_ui(self):
dsb = QDoubleSpinBox(self)
# dsb.move(100, 100)
# dsb.resize(100, 30)
# dsb.setMaximum(88.88)
# dsb.setMinimum(22.22)
# dsb.setSingleStep(0.02)
# dsb.setWrapping(True)
# dsb.setPrefix("$")
# dsb.setSuffix("%")
dsb.setRange(1.0, 2.0)
dsb.setSingleStep(0.5)
dsb.setSuffix("倍速")
dsb.setSpecialValueText("正常")
dsb.setWrapping(True)
3、 clearText()获取整个数值部分,且是str格式。
setValue()默认情况下,只能设置小数点后两位,四舍五入;且不会超过最大范围。
value()获取真实数据。
def setup_ui(self):
dsb = QDoubleSpinBox(self)
test_btn = QPushButton(self)
test_btn.move(300, 300)
test_btn.setText("测试按钮")
test_btn.clicked.connect(lambda: dsb.setValue(-166.66))
test_btn.clicked.connect(lambda: print(type(dsb.value()), dsb.value()))
test_btn.clicked.connect(lambda: print(type(dsb.cleanText()), dsb.cleanText()))
# 获取全部文本,方法一
test_btn.clicked.connect(lambda: print(type(dsb.text()), dsb.text()))
# 方法二
test_btn.clicked.connect(lambda: print(type(dsb.lineEdit().text()), dsb.lineEdit().text()))
自定义展示文本:自定义控件类类别,不局限于前缀和后缀。
class MyDoubleSB(QDoubleSpinBox):
def textFromValue(self, p_float):
print("xxxxxx", p_float)
return str(p_float) + "*" + str(p_float)
4、信号:方法的重载:根据不同的数据类型,调用不同的方法(只发生改变时发射的信号)
dsb.valueChanged.connect(lambda val: print(val, type(val)))
# 像外界发射字符串数据类型的信号
dsb.valueChanged[str].connect(lambda val: print(val, type(val)))
版权声明:本文为laner__gg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。