天天看點

PyQT5-QSlide滑塊

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