1、QAbstractSlider-----功能作用:
滑块控件和信号与槽相连接。
案例:鼠标拖动滑块时所产生的值的变化体现在标签上。
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QAbstractSlider的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
label = QLabel(self)
label.setText("0")
label.move(200, 200)
label.resize(100, 30)
sd = QSlider(self)
sd.move(100, 100)
sd.valueChanged.connect(lambda val: label.setText(str(sd.value())))
sd.setMaximum(100)
sd.setMinimum(66)
# 设置当前数值
sd.setValue(88)
# 设置步长,设置的时键盘上的上下键控制
# sd.setSingleStep(5)
# 设置的pageup和pagedown的步长
sd.setPageStep(8)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
步长分为单步步长和一页步长。
# 设置步长,设置的时键盘上的上下键控制
# sd.setSingleStep(5)
# 设置的pageup和pagedown的步长
sd.setPageStep(8)
2、是否追踪:value是否跟着滑块的位置变化而变化。 (滑块的位置时主导)
# 跟踪设置
print(sd.hasTracking())
sd.setTracking(False)
滑块位置:value不根据滑块的位置改变而改变。
sd.Tracking(False)
sd.setSliderPosition(88)
3、倒立外观(上下反转)、操作反转(上下键为功能翻转)、滑块方向(可以控制滑块控件所展示的外观方向)
是否按下:设置或者获取当前的滑块是否处于按下状态。
# # 倒立外观
# sd.setInvertedAppearance(True)
#
# # 反转控制
# sd.setInvertedControls(True)
# 改成水平的滑块
sd.setOrientation(Qt.Horizontal)
如果设置非追踪状态,鼠标按下控件之后才能进行拖动,当前状态则为滑块被按下状态,松开之后,松开后才判断发生相关值改变信号;他也是经过滑块是否按下做的判定。