滑动条QSlider

Posted liming19680104

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滑动条QSlider相关的知识,希望对你有一定的参考价值。

QSlider只提供整数范围

滑块接受Tab键的焦点,并同时提供了一个鼠标滚轮和键盘接口。键盘接口如下:

Left/Right 移动水平滑块一个步长。
Up/Down 移动垂直滑块一个步长。
PageUp 上移一页。
PageDown 下移一页。
Home 移动至起始位置(最小值)。
End 移动至结束位置(最大值)

 1 import sys
 2 from PyQt5.QtCore import Qt
 3 from PyQt5.QtGui import QFont
 4 from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QLabel, QVBoxLayout, QHBoxLayout
 5 
 6 
 7 class Demo(QWidget):
 8     def __init__(self):
 9         super(Demo, self).__init__()
10         self.slider_1 = QSlider(Qt.Horizontal, self)  # 实例化滚动条
11         #Qt.Hrizontal  水平的滑动条
12         #Qt.Vertical  垂直的滑动条
13         self.slider_1.setRange(0, 100)  #设置范围
14         self.slider_1.valueChanged.connect(lambda: self.on_change_func(self.slider_1))
15         #当滚动条的值发生变化时发出信号
16         self.slider_2 = QSlider(Qt.Vertical, self)
17         self.slider_2.setMinimum(0)  # 设置最小值
18         self.slider_2.setMaximum(100)  # 设置最大值
19         self.slider_2.valueChanged.connect(lambda: self.on_change_func(self.slider_2))
20         self.label = QLabel(0, self)
21         self.label.setFont(QFont(Arial Black, 20))
22         self.h_layout = QHBoxLayout()
23         self.v_layout = QVBoxLayout()
24         self.h_layout.addWidget(self.slider_2)
25         self.h_layout.addStretch(1)
26         self.h_layout.addWidget(self.label)
27         self.h_layout.addStretch(1)
28         self.v_layout.addWidget(self.slider_1)
29         self.v_layout.addLayout(self.h_layout)
30         self.setLayout(self.v_layout)
31         self.slider_1.sliderPressed.connect(self.f)  #按下滑块时发射此信号
32         self.slider_1.sliderMoved.connect(self.f1) #拖动滑块时发出信号
33         self.slider_1.sliderReleased.connect(self.f2)  #释放滑块时发射此信号
34 
35     def f2(self):
36         print(释放滑块)
37 
38     def f1(self):
39         print(拖动了滑块)
40 
41     def f(self):
42         print(按下了滑块)
43 
44 
45     def on_change_func(self, slider):
46         if slider == self.slider_1:
47             self.slider_2.setValue(self.slider_1.value())
48             #setValue   设置滚动条的值
49             #self.slider_1.value()   返回滚动条的值
50             self.label.setText(str(self.slider_1.value()))
51         else:
52             self.slider_1.setValue(self.slider_2.value())
53             self.label.setText(str(self.slider_2.value()))
54 
55 
56 if __name__ == __main__:
57     app = QApplication(sys.argv)
58     demo = Demo()
59     demo.show()
60     sys.exit(app.exec_())

 






以上是关于滑动条QSlider的主要内容,如果未能解决你的问题,请参考以下文章

Python Qt GUI设计:QSlider滑动条类(基础篇—16)

Python Qt GUI设计:QSlider滑动条类(基础篇—16)

QT软件开发之基础控件--2.4.9 QSlider滑块

PyQt5 组件之QSlider

QSlider 不滑动

QT学习——常用控件