PyQt5 控件学习(一个一个学习之QAbstractSlider)

QAbstractSlider 继承图:

QAbstractSlider 描述:

它主要是范围内的整数值。

滑块控件(鼠标),

它的应用场景有:声音的调节,滚动条等,

它总共有三种:

QAbstractSlider 继承:

它是继承QWidget的 

我们这里通过QSlider 来学习 抽象类中的共有属性

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400,400)
        self.set_ui()


    def set_ui(self):
        slider  = QSlider(self)
        

if __name__ == '__main__':
    app =QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 功能作用:

QAbstractSlider 功能作用之数值范围:

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400,400)
        self.set_ui()


    def set_ui(self):
        slider  = QSlider(self)
        self.test()

        #通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val:self.label.setText(str(val)))

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200,200)
        self.label = label








if __name__ == '__main__':
    app =QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
通过 valueChanged信号 来查看数值范围
from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400,400)
        self.set_ui()


    def set_ui(self):
        slider  = QSlider(self)
        self.test()

        #设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        #通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val:self.label.setText(str(val)))



    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200,200)
        label.resize(100,30)
        self.label = label








if __name__ == '__main__':
    app =QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
设置最大值和最小值

QAbstractSlider 功能作用之当前数值:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        print("当前的数值:", self.slider.value())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 功能作用之步长:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        #步长设置
        slider.setSingleStep(5)  #步长指的是  上下键的步长  
        slider.setPageStep(10)  # 按翻页的步长


        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        print("当前的数值:", self.slider.value())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 功能作用之是否追踪:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        #追踪设置
        print(slider.hasTracking())
        slider.setTracking(False)  # 这时,val 值就不会随着滑块变动而变动了


        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        print("当前的数值:", self.slider.value())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 功能作用之滑块位置:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        #滑块位置
        slider.setSliderPosition(88)
        


        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        print("当前的数值:", self.slider.value())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 功能作用之倒立外观:

QAbstractSlider 功能作用之操作反转:

QAbstractSlider 功能作用之滑块方向:

QAbstractSlider 功能作用之是否按下:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        #倒立外观
        # slider.setInvertedAppearance(True)  # 最小的在最上
        # slider.setInvertedControls(True)  #  将控制也改了

        #改为水平

        slider.setOrientation(Qt.Horizontal)

        #是否按下
    



        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        print("当前的数值:", self.slider.value())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

QAbstractSlider 信号:

from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QAbstractSlider的学习")
        self.resize(400, 400)
        self.set_ui()

    def set_ui(self):
        slider = QSlider(self)
        self.slider = slider
        self.test()

        # 设置最大值 和最小值
        slider.setMaximum(100)
        slider.setMinimum(66)

        # 通过 valueChanged 来查看数值范围
        slider.valueChanged.connect(lambda val: self.label.setText(str(val)))

        #倒立外观
        # slider.setInvertedAppearance(True)  # 最小的在最上
        # slider.setInvertedControls(True)  #  将控制也改了

        #改为水平

        slider.setOrientation(Qt.Horizontal)

        ############################信号###############################
        #1
        # slider.sliderMoved.connect(lambda val:print(val))

        #2
        # slider.actionTriggered.connect(lambda val:print(val))

        #3
        slider.rangeChanged.connect(lambda min,max:print(min,max))

        ############################信号###############################




        btn = QPushButton(self)
        btn.setText("按钮")
        btn.move(0, 300)
        btn.clicked.connect(self.btn_clicked_slot)

    def test(self):
        label = QLabel(self)
        label.setText("0")
        label.move(200, 200)
        label.resize(100, 30)
        self.label = label

    def btn_clicked_slot(self):
        self.slider.setMaximum(99)


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = Window()
    window.show()

    sys.exit(app.exec_())
View Code

总结:

以上就是QAbstractSlider的内容,

下面看具体的子类中特有的功能 先看QSlider :https://www.cnblogs.com/zach0812/p/11391472.html

原文地址:https://www.cnblogs.com/zach0812/p/11390309.html