• PyQt5快速开发与实战 4.7 QSpinBox(计数器) and 4.8 QSlider(滑动条)


    PyQt5快速开发与实战

    4. 第4章 PyQt5 基本窗口控件

    4.7 QSpinBox(计数器)

    QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值。

    在默认情况下,QSpinBox的取值范围是0~99,每次改变的步长值为1。QSpinBox类和QDoubleSpinBox类均派生自QAbstractSpinBox类。
    QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点值,它们之间的区别就是处理数据的类型不同,其他功能都基本相同。QDoubleSpinBox的默认精度是两位小数,但可以通过setDecimals()来改变。

    4.7.1 QSpinBox类中的常用方法
    方法描述
    setMinimum()设置计数器的下界
    setMaximum()设置计数器的上界
    setRange()设置计数器的最大值、最小值和步长值
    setValue()设置计数器的当前值
    Value()返回计数器的当前值
    singleStep()设置计数器的步长值

    每次单击向上/向下按钮时,QSpinBox计数器都会发射 valueChanged信号,可以从相应的槽函数中通过value()函数获得计数器的当前值。

    4.7.2 QSpinBox的使用
    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    class spindemo(QWidget):
        def __init__(self,parent = None):
            super(spindemo, self).__init__(parent)
            self.setWindowTitle("SpinBox案例")
            self.resize(300 , 100)
    
            layout = QVBoxLayout()
            self.l1 = QLabel("current value:")
            self.l1.setAlignment(Qt.AlignCenter)
            layout.addWidget(self.l1)
    
            self.sp = QSpinBox()
            layout.addWidget(self.sp)
            self.sp.valueChanged.connect(self.valuechange)
            self.setLayout(layout)
    
        def valuechange(self):
            self.l1.setText("current value :" + str(self.sp.value()))
    
    if __name__ == '__main__':
        from pyqt5_plugins.examples.exampleqmlitem import QtCore
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
        app = QApplication(sys.argv)
        win = spindemo()
        win.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    在这里插入图片描述

    4.8 QSlider(滑动条)

    QSlider 控件提供了一个垂直或水平的滑动条,滑动条是一个用于控制有界值的典型控件,它允许用户沿水平或垂直方向在某一范围内移动滑块,并将滑块所在的位置转换成一个合法范围内的整数值。有时候这种方式比输入数字或者使用SpinBox(计数器)更加自然。在槽函数中对滑块所在位置的处理相当于从整数之间的最小值和最高值进行取值。

    一个滑块条控件可以以水平或垂直的方式显示,在构造函数中进行设置。

    self.sp=QSlider(Qt.Horizontal)
    self.sp=QSlider(Qt.Vertical)
    
    • 1
    • 2
    4.8.1 QSlider类中的常用方法
    方法描述
    setMinimum()设置滑动条控件的最小值
    setMaximum()设置滑动条控件的最大值
    setSingleStep()设置滑动条控件递增/递减的步长值
    setValue()设置滑动条控件的值
    value()获得滑动条控件的值
    setTickInterval()设置刻度间隔
    setTickPosition()设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相对于滑块和用户操作的位置,以下是可以输入的枚举值t
    - QSlider.NoTicks,不绘制任何刻度线
    - QSlider.TicksBothSides,在滑块的两侧绘制刻度线
    - QSlider.TicksAbove,在(水平)滑块上方绘制刻度线
    - QSlider.TicksBelow,在(水平)滑块下方绘制刻度线
    QSlider.TicksLeft,在(垂直)滑块左侧绘制刻度线
    - QSlider.TicksRight,在(垂直)滑块右侧绘制刻度线
    4.8.2 QSlider类中的常用信号
    信号描述
    valueChanged当滑块的值发生改变时发射此信号,此信号是最常用的
    sliderPressed当用户按下滑块时发射此信号
    sliderMoved当用户拖动滑块时发射此信号
    sliderReleased当用户释放滑块时发射此信号
    4.8.3 QSlider的使用案例
    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *
    
    
    class SliderDemo(QWidget):
        def __init__(self,parent = None):
            super(SliderDemo, self).__init__(parent)
            self.setWindowTitle("QSlider案例")
            self.resize(300 , 100)
    
            layout = QVBoxLayout()
            self.l1 = QLabel("Hello DingJiaxiong")
            self.l1.setAlignment(Qt.AlignCenter)
            layout.addWidget(self.l1)
    
            # 水平
            self.s1 = QSlider(Qt.Horizontal)
            # 设置最小值
            self.s1.setMinimum(10)
            # 设置最大值
            self.s1.setMaximum(50)
            # 步长
            self.s1.setSingleStep(3)
            # 设置当前值
            self.s1.setValue(20)
    
            ## 刻度位置
            self.s1.setTickPosition(QSlider.TicksBelow)
            # 设置刻度间隔
            self.s1.setTickInterval(5)
            layout.addWidget(self.s1)
    
            # 连接信号槽
            self.s1.valueChanged.connect(self.valuechange)
            self.setLayout(layout)
    
        def valuechange(self):
            print("Current slider value = %s" % self.s1.value())
            size = self.s1.value()
            self.l1.setFont(QFont("Arial",size))
    
    if __name__ == '__main__':
        from pyqt5_plugins.examples.exampleqmlitem import QtCore
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
        app = QApplication(sys.argv)
        win = SliderDemo()
        win.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    在这里插入图片描述

  • 相关阅读:
    Cookie与Session的区别
    老年人怎么办理美国旅游签证?
    5个物联网商业案例及其带给我们的启示
    WPF——样式与模板
    【软件测试】--功能测试4-html介绍
    生成订单30分钟未支付,则自动取消,该怎么实现?
    Java异常03:自定义异常及经验小结
    高项(5)-人力资源管理-沟通管理-干系人管理-风险管理-采购管理-合同管理-配置管理-知识、变更、战略管理-安全管理-输入输出工具和技术记忆
    2020年中职组“网络安全”赛项广东省竞赛任务书
    第六章 串扰和噪声
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126017488