048.PyQt5_QDoubleSpinBox_浮点类步长调节器

QDoubleSpinBox

  • 描述
  • 浮点类型步长调节器
    0.00 - 99.99
    1.00 % - 99.99 %
    
  • 既可以通过步长调节器调整数据, 也可以通过文本框直接编辑
  • 继承自:QAbstractSpinBox

  • 功能作用
  • 构造函数
    QDoubleSpinBox(parent: QWidget = None)
    
    # 默认功能:步长为1.0, 调整0.00到99.99范围之间的浮点数步长调节器
    
  • 设置数值范围
    setMaximum(max_num)                 # 设置最大值
    maximum() -> float                  # 获取最大值
    
    setMinimum(min_num)                 # 设置最小值
    minimum() -> float                  # 获取最小值
    
    setRange(min_num, max_num)          # 设置数值区间
    
  • 数值循环
    • 设置数值达到最大/小时, 跳转到最小/大
    setWrapping(bool)
    wrapping() -> bool
    
  • 设置步长
    setSingleStep(step_float)           # 设置步长调节器, 单步步长值
    singleStep() -> float
    
  • 前缀和后缀
    setPrefix("$")                          # 设置前缀作为展示
    prefix() -> str                         # 获取前缀内容
    setSuffix("%")                          # 设置后缀作为展示
    suffix() -> str                         # 获取后缀内容
    
  • 最小值特殊文本
    setSpecialValueText(str)                # 设置最小值特殊文本
    # 父类中的方法:当数据到达最小值时, 会显示此字符串
    
  • 设置小数位数
    setDecimals(int)                        # 设置支持更高精度的数据
    decimals() -> int
    
  • 设置和获取数值
    setValue(float)                         # 设置文本内容
    # 如果设置的小数位数过多, 则会按照真实位数四舍五入
    
    value() -> float                        # 获取真实数值,不包含前缀和后缀
    cleanText() -> str                      # 获取文本框的文本,不包括任何前缀,后缀或前导或尾随空格
    text()                                  # 获取文本框显示的文本内容
    
  • 自定义显示格式
    • 显示数值之前, 调用此方法, 转换成对应的格式字符串进行显示
    • 子类化QDoubleSprinBox对象,重写textFromValue方法
    • 控件最终显示的内容是该方法的返回值
    textFromValue(self, p_int) -> format_str
    
    

  • 可用信号
    # 继承父类QAbstractSpinBox的信号
    
    valueChanged(self, float) [signal]            # 值发生改变时候发射该信号,传递浮点类型参数值:value
    valueChanged(self, str) [signal]            # 值发生改变时候发射该信号,传递字符串类型参数值:text
    
    # 这两个信号名称是一样的,仅仅是发射时传递的参数类型不一致(一个传的是float浮点类型,一个传的是String文本字符型)
    # 在使用的时候需要通过 valueChanged[str].connect() 的方式来指定
    

  • 示例代码
  • 示例1:QDoubleSpinBox 创建使用
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QDoubleSpinBox-创建使用')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
        def btn_cao(self):
            self.设置数值范围()
            self.设置小数位()
            self.设置数值循环()
            self.设置步长()
            self.设置前缀和后缀()
            self.最小值特殊文本()
            self.设置和获取数值()
    
        def add_widget(self):
            dsb = QDoubleSpinBox(self)
            dsb.resize(150, 30)
            dsb.move(100, 100)
    
            btn = QPushButton(self)
            btn.resize(150, 30)
            btn.move(100, 150)
    
            self.dsb = dsb
            self.btn = btn
    
            self.btn.clicked.connect(self.btn_cao)
            self.btn.setText('设置数值范围')
    
        def 设置数值范围(self):
            # self.dsb.setMaximum(10.0)
            # self.dsb.setMinimum(2.0)
    
            self.dsb.setRange(2.0, 15.0)
    
        def 设置小数位(self):
            self.dsb.setDecimals(4)
    
        def 设置数值循环(self):
            self.dsb.setWrapping(True)
    
            print(self.dsb.wrapping())
    
        def 设置步长(self):
            self.dsb.setSingleStep(0.0001)
    
            print(self.dsb.singleStep())
    
        def 设置前缀和后缀(self):
            self.dsb.setPrefix('¥:')
            self.dsb.setSuffix('元')
    
        def 最小值特殊文本(self):
            self.dsb.setSpecialValueText('最小值了...')
    
        def 设置和获取数值(self):
            self.dsb.setValue(8.00001)
    
            print('value:',self.dsb.value())
            print('cleanText:',self.dsb.cleanText())
            print('text:',self.dsb.text())
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,qt5,pyqt,python,qt,开发语言)