055.PyQt5_QScrollBar_垂直或水平滚动条

QScrollBar垂直或水平滚动条

  • 描述
    • 使用户能够访问比用于显示它的窗口小部件更大的文档部分
    • 一般是结合QAbstractScrollArea(可滚动区域控件)使用
    • 滚动条通常包括四个单独的控件:滑块(a),滚动箭头(b)和页面控件(c)
      • 055.PyQt5_QScrollBar_垂直或水平滚动条_第1张图片

  • 继承自:QAbstractSlider
  • 功能作用
  • 构造函数
    QScrollBar(parent: QWidget = None)                      # 创建对象的同时设置父对象
    QScrollBar(Qt.Orientation, parent: QWidget = None)      # 创建对象的同时设置控件方向,并设置父对象
    
  • 其他全部继承自父类,没有自己独有的功能作用
  • 注意:QScrollBar控件尺寸需要手动调整
  • 如果想要调整滚动条(滑块)长度, 参考下图
    • 055.PyQt5_QScrollBar_垂直或水平滚动条_第2张图片

    • 滚动条(滑块)的长度可以通过修改每页步长(setPageStep)来进行调整
  • 一个控件内部有多个QScrollBar控件时,需要指定某个控件捕获键盘,否则键盘操作不会生效
    v_scb.grabKeyboard()
    
  • 可用信号
    • 继承自父类
    sliderPressed()                                 # 滑块被按下时,发射信号
    sliderReleased()                                # 滑块被释放时,发射信号
    
    sliderMoved(int value)                          # 滑块被移动时,发射信号。传递滑块当前值    
    valueChanged(int value)                         # 值发生改变时,发射信号。传递滑块当前值
    
    actionTriggered(int action)                     # 触发指定行为时,发射信号。传递当前行为对应索引
     QAbstractSlider.SliderNoAction              # 滑块没有行为
     QAbstractSlider.SliderSingleStepAdd         # 1,滑块单步步长增加行为,按上下键
     QAbstractSlider.SliderSingleStepSub         # 2,滑块单步步长减少行为,按上下键
     QAbstractSlider.SliderPageStepAdd           # 3,滑块每页步长增加行为,按PgUp键
     QAbstractSlider.SliderPageStepSub           # 4,滑块每页步长减少行为,按PgDn键
     QAbstractSlider.SliderToMinimum             # 5,滑块移动到最小值行为
     QAbstractSlider.SliderToMaximum             # 6,滑块移动到最大值行为
     QAbstractSlider.SliderMove                  # 7,滑块移动行为,鼠标拖动滑块
    rangeChanged(int min,int max)                  # 数值范围发生改变时,发射信号。传递最小值和最大值
    

  • 代码示例
  • 示例:QScrollBar功能作用
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QScrollBar-功能作用')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            v_scb = QScrollBar(self)
            h_scb = QScrollBar(Qt.Horizontal, self)
    
            v_scb.resize(20, self.height()-h_scb.height())
            h_scb.resize(self.width() - v_scb.width(), 20)
    
            v_scb.move(self.width() - v_scb.width(), 0)
            h_scb.move(0, self.height() - h_scb.height())
    
            # 控件值发生改变信号
            v_scb.valueChanged.connect(lambda val:print(val))
            v_scb.setPageStep(50)
    
            # 设置v_scb控件捕获键盘
            v_scb.grabKeyboard()
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,pyqt5,python,gui,python,pyqt,qt)