QDoubleSpinBox

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。