1 """ 2 QSlider:是一个小滑块组件,这个小滑块能够被拖着一起滑动,用于通常修改具有一定范围的数据 3 Author: dengyexun 4 DateTime: 2018.11.21 5 """ 6 from PyQt5.QtWidgets import QWidget, QSlider, QApplication, QLabel 7 from PyQt5.QtCore import Qt 8 from PyQt5.QtGui import QPixmap 9 import sys 10 import os 11 12 13 class Example(QWidget): 14 15 def __init__(self): 16 super().__init__() 17 18 self.initUI() 19 20 def initUI(self): 21 # 初始化一个水平滑块 22 sld = QSlider(Qt.Horizontal, self) 23 # 设置焦点策略 24 sld.setFocusPolicy(Qt.NoFocus) 25 sld.setGeometry(30,40,100,30) 26 # 滑动滑块时,传递整型数据给changeValue的value参数 27 sld.valueChanged[int].connect(self.changeValue) 28 29 # 初始化一个label 30 self.label = QLabel(self) 31 self.label.setPixmap(QPixmap('../resources/mute.png')) 32 self.label.setGeometry(100, 100, 200, 300) 33 34 self.setGeometry(300, 300, 600, 600) 35 self.setWindowTitle('slider') 36 self.show() 37 38 def changeValue(self, value): 39 """ 40 自定义函数 41 :param value: 更改的数值 42 :return: 43 """ 44 up_dir = os.path.abspath(os.path.join(os.getcwd(), "..")) 45 if value == 0: 46 self.label.setPixmap(QPixmap(up_dir+'./resources/mute.png')) 47 elif value >0 and value <= 30: 48 self.label.setPixmap(QPixmap(up_dir+'./resources/max.png')) 49 elif value >30 and value < 80: 50 self.label.setPixmap(QPixmap(up_dir+'./resources/med.png')) 51 else: 52 self.label.setPixmap(QPixmap(up_dir+'./resources/min.png')) 53 54 55 if __name__ == '__main__': 56 app = QApplication(sys.argv) 57 ex = Example() 58 sys.exit(app.exec_())