QSlider只提供整数范围

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

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

 import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QLabel, QVBoxLayout, QHBoxLayout class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.slider_1 = QSlider(Qt.Horizontal, self) # 实例化滚动条
#Qt.Hrizontal 水平的滑动条
#Qt.Vertical 垂直的滑动条
self.slider_1.setRange(0, 100) #设置范围
self.slider_1.valueChanged.connect(lambda: self.on_change_func(self.slider_1))
#当滚动条的值发生变化时发出信号
self.slider_2 = QSlider(Qt.Vertical, self)
self.slider_2.setMinimum(0) # 设置最小值
self.slider_2.setMaximum(100) # 设置最大值
self.slider_2.valueChanged.connect(lambda: self.on_change_func(self.slider_2))
self.label = QLabel('', self)
self.label.setFont(QFont('Arial Black', 20))
self.h_layout = QHBoxLayout()
self.v_layout = QVBoxLayout()
self.h_layout.addWidget(self.slider_2)
self.h_layout.addStretch(1)
self.h_layout.addWidget(self.label)
self.h_layout.addStretch(1)
self.v_layout.addWidget(self.slider_1)
self.v_layout.addLayout(self.h_layout)
self.setLayout(self.v_layout)
self.slider_1.sliderPressed.connect(self.f) #按下滑块时发射此信号
self.slider_1.sliderMoved.connect(self.f1) #拖动滑块时发出信号
self.slider_1.sliderReleased.connect(self.f2) #释放滑块时发射此信号 def f2(self):
print('释放滑块') def f1(self):
print('拖动了滑块') def f(self):
print('按下了滑块') def on_change_func(self, slider):
if slider == self.slider_1:
self.slider_2.setValue(self.slider_1.value())
#setValue 设置滚动条的值
#self.slider_1.value() 返回滚动条的值
self.label.setText(str(self.slider_1.value()))
else:
self.slider_1.setValue(self.slider_2.value())
self.label.setText(str(self.slider_2.value())) if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
05-11 02:25