PySide6.QtWidgets.QScrollArea¶
- class QScrollArea¶
QScrollArea
类提供了另一个小部件的滚动视图。更多…概要¶
属性¶
alignmentᅟ
- 滚动区域小部件的对齐方式widgetResizableᅟ
- 滚动区域是否应调整视图小部件的大小
方法¶
def
__init__()
def
alignment()
def
ensureVisible()
def
setAlignment()
def
setWidget()
def
takeWidget()
def
widget()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
滚动区域用于在框架内显示子部件的内容。如果部件超出框架的大小,视图可以提供滚动条,以便可以查看子部件的整个区域。必须使用
setWidget()
指定子部件。例如:imageLabel = QLabel() image = QImage("happyguy.png") imageLabel.setPixmap(QPixmap.fromImage(image)) scrollArea = QScrollArea() scrollArea.setBackgroundRole(QPalette.Dark) scrollArea.setWidget(imageLabel)
上面的代码创建了一个包含图像标签的滚动区域(如下图所示)。当缩放图像时,滚动区域可以提供必要的滚动条:
滚动条的外观取决于当前设置的滚动条策略。您可以使用从
QAbstractScrollArea
继承的功能来控制滚动条的外观。例如,您可以设置
horizontalScrollBarPolicy
和verticalScrollBarPolicy
属性。或者,如果您希望滚动条在滚动区域内容变化时动态调整,您可以使用horizontalScrollBar()
和verticalScrollBar()
函数(这些函数使您能够访问滚动条),并在滚动区域内容变化时使用setValue()
函数设置滚动条的值。您可以使用
widget()
函数检索子部件。可以使用setWidgetResizable()
函数使视图可调整大小。可以使用setAlignment()
指定部件的对齐方式。两个便捷函数
ensureVisible()
和ensureWidgetVisible()
确保内容的某个区域在视口内可见,必要时通过滚动内容来实现。大小提示和布局¶
当使用滚动区域显示自定义小部件的内容时,确保子小部件的
size hint
设置为适当的值非常重要。如果子小部件使用标准的QWidget
,可能需要调用setMinimumSize()
以确保小部件的内容在滚动区域内正确显示。如果使用滚动区域来显示包含在布局中排列的子小部件的小部件内容,重要的是要意识到布局的大小策略也将决定小部件的大小。如果您打算动态更改布局的内容,这一点尤其有用。在这种情况下,将布局的
size constraint
属性设置为对布局的最小和/或最大大小提供约束的属性(例如,SetMinAndMaxSize
)将导致每当布局内容更改时滚动区域的大小也会更新。注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property alignmentᅟ: Combination of Qt.AlignmentFlag¶
此属性保存滚动区域小部件的对齐方式。
有效的对齐方式是以下标志的组合:
Qt::AlignLeft
Qt::AlignHCenter
Qt::AlignRight
Qt::AlignTop
Qt::AlignVCenter
Qt::AlignBottom
默认情况下,小部件会固定在滚动区域的左上角。
- Access functions:
- property widgetResizableᅟ: bool¶
此属性控制滚动区域是否应调整视图小部件的大小。
如果此属性设置为false(默认值),滚动区域将尊重其小部件的大小。无论此属性如何,您都可以使用
widget()
->resize()
以编程方式调整小部件的大小,滚动区域将自动调整自身以适应新的大小。如果此属性设置为true,滚动区域将自动调整小部件的大小,以避免在可以避免的情况下出现滚动条,或利用额外的空间。
- Access functions:
使用给定的
parent
构造一个空的滚动区域。另请参阅
- alignment()¶
- Return type:
AlignmentFlag
的组合
另请参阅
属性
alignmentᅟ
的获取器。- ensureVisible(x, y[, xmargin=50[, ymargin=50]])¶
- Parameters:
x – 整数
y – 整数
xmargin – int
ymargin – int
滚动滚动区域的内容,使得点 (
x
,y
) 在视口区域内可见,边距由xmargin
和ymargin
以像素为单位指定。如果无法到达指定的点,内容将滚动到最近的有效位置。两个边距的默认值均为50像素。- ensureWidgetVisible(childWidget[, xmargin=50[, ymargin=50]])¶
- Parameters:
childWidget –
QWidget
xmargin – int
ymargin – int
滚动滚动区域的内容,使得
widget()
的childWidget
在视口中可见,边距由xmargin
和ymargin
以像素为单位指定。如果无法到达指定点,内容将滚动到最近的有效位置。两个边距的默认值均为50像素。- setAlignment(arg__1)¶
- Parameters:
arg__1 –
AlignmentFlag
的组合
另请参阅
属性
alignmentᅟ
的设置器。设置滚动区域的
widget
。widget
成为滚动区域的子部件,当滚动区域被删除或设置新的部件时,它将被销毁。小部件的
autoFillBackground
属性将被设置为true
。如果滚动区域在添加
widget
时可见,您必须显式地show()
它。请注意,在调用此函数之前,您必须添加
widget
的布局;如果您稍后添加它,无论何时show()
滚动区域,widget
都将不可见。在这种情况下,您也无法稍后show()
widget
。另请参阅
- setWidgetResizable(resizable)¶
- Parameters:
可调整大小 – 布尔值
另请参阅
属性
widgetResizableᅟ
的设置器。移除滚动区域的小部件,并将小部件的所有权传递给调用者。
另请参阅
返回滚动区域的小部件,如果没有则返回
None
。另请参阅
- widgetResizable()¶
- Return type:
布尔
另请参阅
属性
widgetResizableᅟ
的获取器。