[Python自学] PyQT5-QSpinBox、QSlider控件

一、QSpinBox控件

1.使用示例

def initUI8(self):
    # 调整窗口大小
    self.resize(200,100)
    
    # label用于显示当前spinBox的值
    self.label = QLabel("当前值")
    self.label.setAlignment(Qt.AlignCenter)

    # 定义一个计数控件
    self.spin = QSpinBox()
    # 绑定槽函数
    self.spin.valueChanged.connect(self.valueChenge)

    vbox = QVBoxLayout()
    vbox.addWidget(self.label)
    vbox.addWidget(self.spin)

    self.setLayout(vbox)

# 当spinBox的值改变时,触发这个槽函数
def valueChenge(self):
    self.label.setText('当前值:' + str(self.spin.value()))

效果:

2.其他方法

self.spin.setRange(100, 200)  # 设置可选范围100-200
self.spin.setValue(118)  # 设置当前值为118
self.spin.setSingleStep(3)  # 设置每次增加或减少的步长为3

二、QSlider控件

QSlider是通过滑块来控制数值的大小;

1.使用示例

def initUI8(self):
    # 调整窗口大小
    self.resize(200, 100)

    # label用于显示当前spinBox的值
    self.label = QLabel("当前值")
    self.label.setAlignment(Qt.AlignCenter)

    self.slider = QSlider(Qt.Horizontal)  # 定义一个横向的slider滑块控件
    self.slider.setMinimum(12)  # 设置最小值
    self.slider.setMaximum(50)  # 设置最大值
    self.slider.setValue(18)
    self.slider.setSingleStep(2)  # 设置变化步长

    self.slider.setTickPosition(QSlider.TicksBelow)  # 设置刻度在下方
    self.slider.setTickInterval(6)  # 设置刻度间隔,即滑条下面的小竖线

    # 绑定槽函数
    self.slider.valueChanged.connect(self.valueChenge)

    vbox = QVBoxLayout()
    vbox.addWidget(self.label)
    vbox.addWidget(self.slider)

    self.setLayout(vbox)

# 当slider的值改变时,触发这个槽函数
def valueChenge(self):
    size = self.slider.value()
    print('当前值:' + str(size))
    self.label.setFont(QFont('Arial', size))

效果:

 

====

posted @ 2020-06-12 17:42  风间悠香  阅读(1444)  评论(0编辑  收藏  举报