zoukankan      html  css  js  c++  java
  • PyQt5 控件学习(一个一个学习之QSpinBox)

    QSpinBox的继承图:

    QSpinBox的描述:

    它主要的作用是处理整数和离散的数值集  。

    QSpinBox的继承:

    它继承自QAbstractSpinBox  

    QSpinBox的功能作用:

    QSpinBox的功能作用之构造函数:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            spinBox = QSpinBox(self)
            spinBox.resize(100,30)
            spinBox.move(100,100)   # 默认情况下的数值范围是 0- 99
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之设置数值范围:

    默认的范围是 0 -99 

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
            self.test()
    
        def test(self):
            ############################设置最大最小值 ###############################
            # self.spinBox.setMaximum(200)
            # self.spinBox.setMinimum(-100)
            #
            # print(self.spinBox.maximum())
            # print(self.spinBox.minimum())
    
            self.spinBox.setRange(-100,200)  #注:它这个两边都是可以取到的
    
            self.spinBox.setAccelerated(True)
    
    
            ############################设置最大最小值 ###############################
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之数值循环:

    这类似于播放列表 。

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################数值循环###############################
            print(self.spinBox.wrapping())
            self.spinBox.setWrapping(True)
            print(self.spinBox.wrapping())
            ############################数值循环###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之设置步长:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################设置步长###############################
            self.spinBox.setSingleStep(10)
    
            print(self.spinBox.singleStep())
    
            ############################设置步长###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之前缀和后缀:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################设置前缀和后缀###############################
                # ###########################################################
                # self.spinBox.setRange(1,12)
                # self.spinBox.setSuffix("月")  #后缀
                #
                # ###########################################################
            #后缀
            self.spinBox.setRange(0,6)
            self.spinBox.setPrefix("")
            #这时在最小值的时候就是周0 了,这样不行的 ,要用到下个方法:下面看
            
    
    
            ############################设置前缀和后缀###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之最小值特殊文本:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################最小值特殊文本###############################
    
            #后缀
            self.spinBox.setRange(0,6)
            self.spinBox.setPrefix("")
            #这时在最小值的时候就是周0 了,这样不行的 ,要用到下个方法:下面看
            self.spinBox.setSpecialValueText("周日")
            ############################最小值特殊文本###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之显示基数(进制):

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################显示基数(进制)###############################
            self.spinBox.setDisplayIntegerBase(2)  # 2进制
            self.spinBox.setDisplayIntegerBase(3)  # 3进制
            
            print(self.spinBox.displayIntegerBase())
    
    
    
            ############################显示基数(进制)###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之设置和获取数值:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################设置和获取数值###############################
            # self.spinBox.setValue(66)
            print(self.spinBox.value())
            ############################设置和获取数值###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code
    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################设置和获取数值###############################
            # self.spinBox.setValue(66)
    
            self.spinBox.setPrefix("星期")
    
            print(self.spinBox.value())    #此时并没有获取前缀,只是 数值
    
            print(self.spinBox.text())
            print(self.spinBox.lineEdit().text())
    
            ############################设置和获取数值###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QSpinBox的功能作用之自定义展示格式:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class MySpinBox(QSpinBox):
        def textFromValue(self, p_int):
            print(p_int)
            return str(p_int) +'*'+str(p_int)
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = MySpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
        def test(self):
            ############################自定义展示格式###############################
            # self.spinBox.setValue(66)
    
            self.spinBox.setPrefix("星期")
    
            print(self.spinBox.value())    #此时并没有获取前缀,只是 数值
    
            print(self.spinBox.text())
            print(self.spinBox.lineEdit().text())
    
            ############################自定义展示格式###############################
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    这里改变的只是展示

    QSpinBox的信号:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QSpinBox 的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            self.spinBox = QSpinBox(self)
            self.spinBox.resize(100,30)
            self.spinBox.move(100,100)
    
    
    
            btn = QPushButton(self)
            btn.setText("按钮")
            btn.move(0,300)
            btn.clicked.connect(lambda :self.test())
    
            ############################信号###############################
            
            # self.spinBox.valueChanged.connect(lambda val:print(type(val),val))
    
            self.spinBox.valueChanged[str].connect(lambda val:print(type(val),val))
    
            ############################信号###############################
    
        def test(self):
            pass
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    总结:

    以上就是整形的步长调节器 ,下面是  浮点型的步长调节器QDoubleSpinBox:https://www.cnblogs.com/zach0812/p/11387552.html

  • 相关阅读:
    springboot 基础
    spring 基础
    spring MVC 基础
    windows shell
    oracle 创建用户和视图并授权
    maven 安装本地依赖
    JAVA ssl 证书
    mybatis 递归
    MyBatis基础
    当年的毕设-cpf (一个简易的协议 fuzzer)
  • 原文地址:https://www.cnblogs.com/zach0812/p/11387108.html
Copyright © 2011-2022 走看看