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_())

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_())

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_())

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_())

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_())

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_())

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_())

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_())
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_())

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_())

这里改变的只是展示

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_())

总结:

以上就是整形的步长调节器 ,下面是  浮点型的步长调节器QDoubleSpinBox: