Python GUI编程网 > PyQt5控件_PyQt5控件方法大全 > 滚动区域QAbstractScrollArea使用方法详解和实战效果验证
python教程

滚动区域QAbstractScrollArea使用方法详解和实战效果验证

发布博客:2022年12月5日 03:28
阅读:345
作者:Python GUI编程网

为了方便学习后面的QTextEdit多行文本框控件,本章和前面的QFrame都是作为铺垫,QAbstractScrollArea继承自QFrame,注意QAbstractScrollArea实际上不是抽象的,只是该类的功能不够完整,所以才看做为抽象类。QAbstractScrollArea主要用于被继承来实现自定义的滚动区域,简单理解为滚动条区域。

为了方便学习后面的QTextEdit多行文本框控件,本章和前面的QFrame都是作为铺垫,QAbstractScrollArea继承自QFrame,注意QAbstractScrollArea实际上不是抽象的,只是该类的功能不够完整,所以才看做为抽象类。QAbstractScrollArea主要用于被继承来实现自定义的滚动区域,简单理解为滚动条区域。

QAbstractScrollArea的知识点主要分为三个方面:水平和垂直滚动条设置滚动条设置策略角落控件的使用方法

QAbstractScrollArea设置滚动条的方法主要有水平和垂直2个方向的,分别是setVerticalScrollBarPolicy()和setHorizontalScrollBarPolicy(),至于滚动条的设置策略Qt给我们枚举了一些值:

# Qt.ScrollBarAlwaysOn
# Qt.ScrollBarAlwaysOff
# Qt.ScrollBarAsNeeded

简单演示一下

qte = QTextEdit('PyQt5中文网:www.pyqt5.cn', window)
qte.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)

这样看不出来效果,可以把内容多复制几次就能看到以下效果了:

QAbstractScrollArea

横向滚动条设置也是一样的,这里就不演示了,但是在横向和纵向滚动条同时设置的时候,两个滚动条交接的地方会出现空白区域,PyQt也为我们考虑到了,这就是角落控件设置,通过一个按钮控件就能填充角落了,直接上代码看效果。

btn = QPushButton(window)
btn.setIcon(QIcon('123.jpg'))
qte.setCornerWidget(btn)

QAbstractScrollArea

下面是完整代码:

from PyQt5.Qt import *
import sys
 
 app = QApplication(sys.argv)
 
 window = QWidget()
 window.setWindowTitle('QAbstractScrollArea-多行文本框滚动条 - PyQt5中文网')
 window.resize(600, 450)
 window.move(300, 300)
 
 qte = QTextEdit('PyQt5中文网:www.pyqt5.cn', window)
 # 设置滚动条,设置滚动策略
 # Qt.ScrollBarAlwaysOn
 # Qt.ScrollBarAlwaysOff
 # Qt.ScrollBarAsNeeded
 qte.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
 # qte.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
 # qte.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
 
 # 角落控件
 btn = QPushButton(window)
 btn.setIcon(QIcon('123.jpg'))
 qte.setCornerWidget(btn)
 
 
 window.show()
 sys.exit(app.exec_())