基本窗口控件
九、QSlider 滑动条
1、基本概述
- QSlider 控件提供一个垂直或水平的滑动条,滑动条用于控制有界值得典型控件,允许用户沿水平方向或垂直方向在某一范围内移动滑块,并将滑块所在的位置转换成一个合法范围内的整数值。
- 滑动条水平显示或垂直显示,可通过构造函数进行设置,如下:
self.sp = QSlider(Qt.Horizontal) self.sp = QSlider(Qt.Vertical)
2、常用方法
- QSlider 类的常用方法如下表:
方法 描述 setMinimum() 设置滑动条的最小值 setMaximum() 设置滑动条的最大值 setSingleStep() 设置滑动条的步长值 setValue() 设置滑动条控件的值 value() 获取滑动条的值 setTickInterval() 设置刻度间隔 setTickPosition() 设置刻度标记的位置 - setTickPosition() 方法的参数的有效取值如下表:
值 意义 QSlider.NoTicks 不绘制任何刻度线 QSlider.TicksBothSides 在滑块的两侧绘制刻度线 QSlider.TicksAbove 在(水平)滑块上方绘制刻度线 QSlider.TicksBelow 在(水平)滑块下方绘制刻度线 QSlider.TicksLeft 在(垂直)滑块的左侧绘制刻度线 QSlider.TicksRight 在(垂直)滑块右侧绘制刻度线
3、常用信号
- QSlider 类的常用信号如下:
信号 描述 valueChanged 当滑块的值发生改变时触发该信号 sliderPressed 当用户按下滑块触发该信号 sliderMoved 当用户拖动滑块时触发该信号 sliderReleased 当用户释放滑块时触发该信号
4、QSlider 示例
- 示例代码如下:
# -*- coding:utf-8 -*- # Time : 2019/08/13 下午 3:16 # Author : 御承扬 # e-mail:2923616405@qq.com # project: PyQt5 # File : qt19_QSlider.py # @software: PyCharm 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.setWindowIcon(QIcon("./images/Python2.ico")) self.resize(300, 100) layout = QVBoxLayout() self.label = QLabel("Hello PyQt5") self.label.setAlignment(Qt.AlignCenter) layout.addWidget(self.label) self.setLayout(layout) # 水平方向 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.value_changed) def value_changed(self): print("current slider value=%s" % self.s1.value()) size = self.s1.value() self.label.setFont(QFont("Arial", size)) if __name__ == "__main__": app = QApplication(sys.argv) win = SliderDemo() win.show() sys.exit(app.exec_())
- 效果如下:
- 控制台输出:
current slider value=21 current slider value=22 current slider value=23 current slider value=24 current slider value=25