一、前言
QAbstractScrollArea滚屏区域抽象类继承于QFrame,QFrame继承于QWidget,是QListview(列表浏览器)、QTableview(表格浏览器)、QTextEdit(文本编辑器)、QTextBrowser(文本浏览器)等所有需要滚屏区域部件的抽象基类。
框架类QFrame介绍
QAbstractScrollArea提供了一个中心区域(viewport),该区域的内容可以在这里滚动,提供了垂直和水平滚动条,滚动条可以选择隐藏/显示,窗口会自动扩展/缩小。
二、QAbstractScrollArea类
1、horizontalScrollBarPolicy
该属性表示水平滚动条的策略,默认Qt::ScrollBarAsNeeded。
Qt::ScrollBarPolicy horizontalScrollBarPolicy() const
void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy)
2、verticalScrollBarPolicy
该属性表示垂直滚动条的策略,默认Qt::ScrollBarAsNeeded。
Qt::ScrollBarPolicy verticalScrollBarPolicy() const
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)
标识 描述 Qt::ScrollBarAsNeeded 内容过大的时候自动显示 Qt::ScrollBarAlwaysOff 总是隐藏 Qt::ScrollBarAlwaysOn 总是显示,在一些有瞬时滚动条的系统被忽略,比如MAC 10.7
3、sizeAdjustPolicy
该属性表示当视口(viewport)大小改变时滚动区域大小如何改变的策略,默认不跟随变化。
QAbstractScrollArea::SizeAdjustPolicy sizeAdjustPolicy() const
void setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy)
标识 描述 QAbstractScrollArea::AdjustIgnored 滚动区域不随viewport变化调整 QAbstractScrollArea::AdjustToContents 滚动区域随viewport变化调整 QAbstractScrollArea::AdjustToContentsOnFirstShow 滚动区域将在第一次显示时随viewport变化调整
4、成员函数
1)scrollBarWidget
使用addScrollBarWidget方法用于在滚动条旁边添加一个小部件,按钮、标签、图片等等。alignment使用Qt::AlignTop或者Qt::AlignBottom则添加到垂直滚动条上下,Qt::AlignLeft或者Qt::AlignRight则添加到水平滚动条左右。部件默认高度和宽度跟滚动条一样,通过设置大小最小高度和宽度改变。
使用scrollBarWidgets方法获取滚动条部件,上下左右最多四个。
void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
QWidgetList scrollBarWidgets(Qt::Alignment alignment)
2)cornerWidget
获取和设置滚动条之间角落的小部件,默认角落是没有小部件的。
QWidget *cornerWidget() const
void setCornerWidget(QWidget *widget)
3)horizontalScrollBar
获取和设置水平滚动条QScrollBar,包含滚动条的范围、值、步长等属性的读取和设置。 滑块类QScrollBar介绍。
QScrollBar *horizontalScrollBar() const
void setHorizontalScrollBar(QScrollBar *scrollBar)
4)verticalScrollBar
获取和设置垂直滚动条QScrollBar,包含滚动条的范围、值、步长等属性的读取和设置。 滑块类QScrollBar介绍。
QScrollBar *verticalScrollBar() const
void setVerticalScrollBar(QScrollBar *scrollBar)
5)viewport
获取和设置视口部件。
QWidget *viewport() const
void setViewport(QWidget *widget)