17.PyQt5【基本组件】滑块-QSlider

一、前言

QSlider类对象向用户展示了一个可以移动手柄的凹槽。它是控制有界值的经典小部件。凹槽上手柄的位置相当于控件上下限之间的整数。

通过在构造函数中提及方向,可以以水平或垂直方式显示滑块控件。

二、学习目标

1.QSlider常用方法

2.QSlider常用信号

3.QSlider组件的应用

三、知识点

1.【QSlider常用方法】

方法 描述
setMinimum() 设置滑块的下限
setMaximum() 设置滑块的上限
setSingleStep() 设置递增/递减步长
setValue() 以编程方式设置控件的值
value() 返回当前值
setTickInterval() 将刻度数放在凹槽上
setTickPosition() 将刻度放在凹槽上,有以下几种方式:
QSlider.NoTicks:没有刻度线
QSlider.TicksBothSides:两边都有刻度线
QSlider.TicksAbove:滑块上方的刻度线
QSlider.TicksBelow:滑块下方的刻度线
QSlider.TicksLeft:滑块左侧的刻度线
QSlider.TicksRight:滑块右侧的刻度线

2.【QSlider常用信号】

信号 描述
valueChanged 当滑块的值发生变化时
sliderPressed 当用户开始拖动滑块时
sliderMoved 当用户拖动滑块时
sliderReleased 当用户释放滑块时

3.【QSlider组件的应用】

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QSlider


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QSlider组件示例")
        # 创建布局
        self.layout = QVBoxLayout()

        # QSlider组件定义
        self.hSlider = QSlider(Qt.Horizontal)  # 创建水平滑块
        self.vSlider = QSlider(Qt.Vertical)    # 创建垂直滑块
        # QSlider组件设置
        self.hSlider.setMaximum(100)                      # 为水平滑块设置上限100
        self.hSlider.setSingleStep(10)                    # 为水平滑块设置步长10
        self.hSlider.setTickPosition(QSlider.TicksBelow)  # 水平滑块下方设置刻度
        # QSlider关联信号
        self.hSlider.valueChanged.connect(self.on_hSlider_valueChanged)

        # 将组件添加到布局中
        self.layout.addWidget(self.hSlider)
        self.layout.addWidget(self.vSlider)
        # 为窗体添加布局
        self.setLayout(self.layout)

    def on_hSlider_valueChanged(self, num):
        """槽函数"""
        print("hSlider滑块获取刻度为:{}!".format(num))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())
  • 关键代码

            # QSlider组件定义
            self.hSlider = QSlider(Qt.Horizontal)  # 创建水平滑块
            self.vSlider = QSlider(Qt.Vertical)    # 创建垂直滑块
            # QSlider组件设置
            self.hSlider.setMaximum(100)                      # 为水平滑块设置上限100
            self.hSlider.setSingleStep(10)                    # 为水平滑块设置步长10
            self.hSlider.setTickPosition(QSlider.TicksBelow)  # 水平滑块下方设置刻度
            # QSlider关联信号
            self.hSlider.valueChanged.connect(self.on_hSlider_valueChanged)
    
posted @ 2023-01-16 10:43  测开星辰  阅读(380)  评论(0编辑  收藏  举报