滑块QSlider控件提供一个垂直或者水平的滑动条,滑动条是一个用于控制有界值典型的控件,它允许用户沿水平或者垂直方向在某一范围内移动滑块,并将滑块所在的位置转换为一个合法范围内的整数值,有时候这中方式比输入数字更加自然。
QSlider控件的常用事件类型有如下几种。
事件类型 |
描述 |
vlaueChanged |
滑块的值发生改变时触发事件,此类型是最常用的 |
sliderPressed |
按下滑块时触发事件 |
sliderMoved |
拖动滑块时触发事件 |
slierReleased |
释放滑块时触发事件 |
滑块控件QSlider可以以水平或垂直的方式显示,只需在构造函数中设置不同的值即可,Qt.Horizontal表示水平,Qt.Vertical表示垂直。QSlider控件的常用方法如下表所示。
方法 |
描述 |
setMinimum() |
设置滑动条控件的最小值 |
setMaximum() |
设置滑动条控件的最大值 |
setSingleStep() |
设置滑动条控件的步长 |
setValue() |
设置滑动条控件的值 |
value() |
获取滑动条控件的值 |
setTickInterval() |
设置刻度间隔 |
setTickPosition (QSlider_TickPosition) |
设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相当于滑块和用户操作的位置,可选枚举值,往下看。 |
QSlider_TickPosition可选枚举值如下表所示。
枚举值 |
描述 |
QSlider.NoTicks |
不绘制任何刻度线 |
QSlider.TicksBothSides |
在滑块的两侧绘制刻度线 |
QSlider.TicksAbove |
在水平的滑块上方绘制刻度线 |
QSlider.TicksBelow |
在水平的滑块下方绘制刻度线 |
QSlider.TicksLeft |
在垂直滑块的左侧绘制刻度线 |
QSlider.TicksRight |
在垂直滑块的右侧绘制刻度线 |
程序清单:slider.py
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QLabel,
QSlider, QSpinBox, QVBoxLayout
from PyQt5.QtCore import Qt
# 继承QWidget
class SliderWidget(QWidget):
info_lbl = None
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 垂直布局
v_box = QVBoxLayout()
self.info_lbl = QLabel("滑块控件的当前值为:10")
v_box.addWidget(self.info_lbl)
# 创建水平方向滑动条
slider = QSlider(Qt.Horizontal)
slider.setProperty("id", 1)
slider.setMinimum(10) # 设置最小值
slider.setMaximum(100) # 设置最大值
slider.setSingleStep(10) # 步长
slider.setValue(20) # 设置当前值
slider.setTickInterval(10) # 设置刻度间距
slider.valueChanged.connect(self.valuechange)
v_box.addWidget(slider)
self.setLayout(v_box)
# 调整窗口大小
self.resize(600, 200)
# 窗口居中
self.center()
# 窗口标题
self.setWindowTitle("滑块的应用")
# 显示窗口
self.show()
def valuechange(self):
sender = self.sender()
self.info_lbl.setText("滑块控件的当前值为:%d" % sender.value())
# 实现居中
def center(self):
f = self.frameGeometry()
c = QDesktopWidget().availableGeometry().center()
f.moveCenter(c)
self.move(f.topLeft())
if __name__ == "__main__":
app = QApplication(sys.argv)
w = SliderWidget()
sys.exit(app.exec_())
运行程序之后,弹出的窗口如下:
好了,滑块控件的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
今日头条:老陈说编程,到2021年国庆节,Python就全部分享完了,完整的课程有:
1.《12天搞定Python》
2.《16天搞定Python数据分析》
3.《10天搞定Python网络爬虫》
4. 《Django3.0项目实战》
5. 《25天学会Wxpython》
6. 《28天学会PyQt5》发布中
7. 《25天学会Seaborn数据分析》在csdn发布完了
8. 《3天搞定Pyecharts数据分析》国庆期间发布