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_())
轉載于:https://www.cnblogs.com/demo-deng/p/9994751.html