040.PyQt5_QAbstractScrollArea_滚动区域抽象类

QAbstractScrollArea滚动区域抽象类

  • 描述
    • 是滚动区域的低级抽象
    • 抽象类不能直接实例化,一般都是通过子类实例化
  • 继承自:QWidget
  • 父子类图
    • 040.PyQt5_QAbstractScrollArea_滚动区域抽象类_第1张图片

  • 功能作用
  • 设置水平和垂直滚动条
    • 可以调用此函数以使用您自己的自定义滚动条替换默认的水平滚动条
    • 这里不做详细讲解,后面讲QScrollBar类的时候具体讲
    setHorizontalScrollBar(QScrollBar * scrollBar)      # 设置水平滚动条为自定义滚动条
    setVerticalScrollBar(QScrollBar * scrollBar)        # 设置垂直滚动条为自定义滚动条
    
    horizontalScrollBar() -> QScrollBar                 # 获取水平滚动条,返回QScrollBar对象
    verticalScrollBar() -> QScrollBar                   # 获取垂直滚动条,返回QScrollBar对象
    
  • 滚动条策略
    • 设置水平/垂直滚动条显示时机
    setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy)
    setVerticalScrollBarPolicy(Qt.ScrollBarPolicy)
        # 参数 Qt.ScrollBarPolicy
                Qt.ScrollBarAsNeeded                    # 默认,当内容太大而不适合时,显示滚动条。
                Qt.ScrollBarAlwaysOff                   # 从不显示滚动条。
                Qt.ScrollBarAlwaysOn                    # 始终显示滚动条。
                                                        # 具有瞬态滚动条的系统会忽略此属性(例如,在版本10.7的Mac上)。
                                                        
    horizontalScrollBarPolicy() -> QScrollBar           # 获取水平滚动条设置的显示策略,返回QScrollBar对象
    verticalScrollBarPolicy() -> QScrollBar             # 获取垂直滚动条设置的显示策略,返回QScrollBar对象
    
  • 角落控件
    • 水平滚动条和垂直滚动条相交处所形成的角落,可以设置一个QWidget控件
    • 040.PyQt5_QAbstractScrollArea_滚动区域抽象类_第2张图片

    setCornerWidget(QWidget *widget)                    # 为角落设置指定控件
    
    cornerWidget() -> QWidget                           # 获取角落设置的对应控件,返回QWidget对象
    
  • 可用信号
    • 可用信号均继承自父类

  • 示例代码
  • 功能测试
    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    window = QWidget()
    window.resize(500, 500)
    window.setWindowTitle('QAbstractScrollArea_功能测试')
    
    # QAbstractScrollArea是抽象类,不能直接实例化,需要通过子类实例化对象
    
    te = QTextEdit('功能能测试',window)
    
    # # 设置内容太大时显示水平滚动条
    # te.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
    # 设置水平滚动条始终显示
    te.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
    # # 设置水平滚动条始终不显示
    # te.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    
    # # 设置内容太大时显示垂直滚动条
    # te.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
    # 设置垂直滚动条始终显示
    te.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
    # # 设置垂直滚动条始终不显示
    # te.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
    
    btn = QPushButton(window)
    btn.setIcon(QIcon('../images/png/home.png'))
    btn.clicked.connect(lambda : print('点击了角落里面的按钮控件!'))
    
    # 设置角落控件为btn
    te.setCornerWidget(btn)
    
    
    window.show()
    sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,qt5,pyqt,python,qt,开发语言)