第20天 | 28天学会PyQt5,滑块控

滑块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_())

运行程序之后,弹出的窗口如下:

第20天 | 28天学会PyQt5,滑块控

好了,滑块控件的内容就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

今日头条:老陈说编程,到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数据分析》国庆期间发布

上一篇:SwiftUI脑洞大开打造实时显示当前值的Slider


下一篇:arcgis时间滑块time slider工具