PySide6.QtWidgets.QLayout¶
- class QLayout¶
-
继承自:
QStackedLayout
,QGridLayout
,QFormLayout
,QBoxLayout
,QVBoxLayout
,QHBoxLayout
概要¶
属性¶
sizeConstraintᅟ
- 布局的调整大小模式spacingᅟ
- 布局内小部件之间的间距
方法¶
def
__init__()
def
activate()
def
addChildLayout()
def
addChildWidget()
def
addWidget()
def
adoptLayout()
def
alignmentRect()
def
contentsRect()
def
isEnabled()
def
menuBar()
def
parentWidget()
def
removeItem()
def
removeWidget()
def
setAlignment()
def
setEnabled()
def
setMenuBar()
def
sizeConstraint()
def
totalSizeHint()
def
update()
def
widgetEvent()
虚拟方法¶
def
addItem()
def
count()
def
indexOf()
def
itemAt()
def
replaceWidget()
def
setSpacing()
def
spacing()
def
takeAt()
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
这是一个抽象基类,由具体类
QBoxLayout
、QGridLayout
、QFormLayout
和QStackedLayout
继承。对于
QLayout
子类或QMainWindow
的用户来说,很少需要使用QLayout
提供的基本功能,例如setSizeConstraint()
或setMenuBar()
。更多信息请参见布局管理。要创建自己的布局管理器,请实现函数
addItem()
、sizeHint()
、setGeometry()
、itemAt()
和takeAt()
。你还应该实现minimumSize()
以确保在空间不足时,你的布局不会被调整为零大小。为了支持高度依赖于宽度的子项,请实现hasHeightForWidth()
和heightForWidth()
。有关实现自定义布局管理器的更多信息,请参阅 Flow Layout 示例。当布局管理器被删除时,几何管理停止。
另请参阅
QLayoutItem
布局管理 基本布局示例 流布局示例- class SizeConstraint¶
可能的值为:
常量
描述
QLayout.SetDefaultConstraint
主控件的最小尺寸设置为
minimumSize()
,除非控件已经有一个最小尺寸。QLayout.SetFixedSize
主窗口的大小设置为
sizeHint()
;它完全不能调整大小。QLayout.SetMinimumSize
主控件的最小尺寸设置为
minimumSize()
;它不能更小。QLayout.SetMaximumSize
主控件的最大尺寸设置为
maximumSize()
;它不能更大。QLayout.SetMinAndMaxSize
主控件的最小尺寸设置为
minimumSize()
,最大尺寸设置为maximumSize()
。QLayout.SetNoConstraint
该部件不受约束。
另请参阅
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- Access functions:
- property sizeConstraintᅟ: QLayout.SizeConstraint¶
此属性保存布局的调整大小模式。
默认模式是
SetDefaultConstraint
。- Access functions:
- property spacingᅟ: int¶
此属性保存布局内小部件之间的间距。
如果没有显式设置值,布局的间距将从父布局继承,或从父小部件的样式设置中继承。
对于
QGridLayout
和QFormLayout
,可以使用setHorizontalSpacing()
和setVerticalSpacing()
设置不同的水平和垂直间距。在这种情况下,spacing()返回-1。- Access functions:
构造一个新的顶级
QLayout
,父级为parent
。布局直接设置为
parent
的顶级布局。一个部件只能有一个顶级布局。它由layout()
返回。如果
parent
是None
,那么你必须将此布局插入到另一个布局中,或者使用setLayout()
将其设置为小部件的布局。另请参阅
- activate()¶
- Return type:
布尔
如有必要,重新布局
parentWidget()
。通常不需要调用此函数,因为它会在最合适的时间自动调用。如果布局重新完成,则返回true。
另请参阅
此函数在子类中的
addLayout()
或insertLayout()
函数中被调用,用于将布局childLayout
添加为子布局。唯一需要直接调用它的场景是,如果你实现了一个支持嵌套布局的自定义布局。
此函数从子类中的
addWidget()
函数调用,以将w
添加为布局的托管小部件。如果
w
已经被一个布局管理,这个函数将产生一个警告,并从该布局中移除w
。因此,必须在将w
添加到布局的数据结构之前调用此函数。- abstract addItem(item)¶
- Parameters:
项目 –
QLayoutItem
在子类中实现以添加一个
item
。如何添加是每个子类特有的。此函数通常不在应用程序代码中调用。要将小部件添加到布局中,请使用
addWidget()
函数;要添加子布局,请使用相关QLayout
子类提供的addLayout()函数。以特定于布局的方式将小部件
w
添加到此布局中。此函数使用addItem()
。返回当此布局的几何形状设置为
r
时应覆盖的矩形,前提是此布局支持setAlignment()
。结果来源于
sizeHint()
和expandingDirections()
。它永远不会大于r
。返回一个满足所有大小约束的大小,包括
heightForWidth()
,并且尽可能接近size
。返回布局周围使用的边距。
默认情况下,
QLayout
使用样式提供的值。在大多数平台上,边距在所有方向上均为11像素。另请参阅
属性
contentsMarginsᅟ
的获取器。返回布局的
geometry()
矩形,但考虑了内容的边距。- abstract count()¶
- Return type:
整数
必须在子类中实现以返回布局中的项目数量。
另请参阅
- getContentsMargins()¶
- Return type:
PyObject
对于每个不为
None
的left
、top
、right
和bottom
,将指针所指向位置的边距大小存储起来。默认情况下,
QLayout
使用样式提供的值。在大多数平台上,边距在所有方向上均为11像素。- indexOf(layoutItem)¶
- Parameters:
layoutItem –
QLayoutItem
- Return type:
整数
在此布局中搜索布局项
layoutItem
(不包括子布局)。返回
layoutItem
的索引,如果未找到layoutItem
则返回 -1。- indexOf(widget)
- Parameters:
widget –
QWidget
- Return type:
整数
在此布局中搜索小部件
widget
(不包括子布局)。返回
widget
的索引,如果未找到widget
则返回-1。默认实现使用
itemAt()
遍历所有项目。- isEnabled()¶
- Return type:
布尔
如果布局已启用,则返回
true
;否则返回false
。另请参阅
- abstract itemAt(index)¶
- Parameters:
索引 – int
- Return type:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
必须在子类中实现以返回
index
处的布局项。如果没有这样的项,函数必须返回None
。项从0开始连续编号。如果删除了一个项,其他项将重新编号。此函数可用于遍历布局。以下代码将为小部件布局结构中的每个布局项绘制一个矩形。
- Return type:
返回为此布局设置的菜单栏,如果未设置菜单栏,则返回
None
。另请参阅
返回此布局的父部件,如果此布局未安装在任何部件上,则返回
None
。如果布局是子布局,此函数返回父布局的父部件。
另请参阅
- removeItem(item)¶
- Parameters:
项目 –
QLayoutItem
从布局中移除布局项
item
。调用者有责任删除该项。请注意,
item
可以是一个布局(因为QLayout
继承自QLayoutItem
)。另请参阅
从布局中移除小部件
widget
。在此调用之后,调用者有责任为小部件设置合理的几何形状,或将小部件放回布局中,或在必要时显式隐藏它。- replaceWidget(from, to[, options=Qt.FindChildrenRecursively])¶
- Parameters:
from –
QWidget
to –
QWidget
options –
FindChildOption
的组合
- Return type:
搜索小部件
from
并在找到时将其替换为小部件to
。成功时返回包含小部件from
的布局项。否则返回None
。如果options
包含Qt::FindChildrenRecursively
(默认情况下),则会搜索子布局以进行替换。options
中的任何其他标志将被忽略。请注意,返回的项目可能不属于此布局,而是属于子布局。
返回的布局项不再由布局拥有,应删除或插入到另一个布局中。小部件
from
不再由布局管理,可能需要删除或隐藏。小部件from
的父级保持不变。此函数适用于内置的Qt布局,但可能不适用于自定义布局。
另请参阅
- setAlignment(l, alignment)¶
- Parameters:
l –
QLayout
alignment –
AlignmentFlag
的组合
- Return type:
布尔
这是一个重载函数。
设置布局
l
的对齐方式为alignment
,如果在此布局中找到l
(不包括子布局),则返回true
;否则返回false
。- setAlignment(w, alignment)
- Parameters:
w –
QWidget
alignment –
AlignmentFlag
的组合
- Return type:
布尔
将小部件
w
的对齐方式设置为alignment
,如果在此布局中找到w
(不包括子布局),则返回true
;否则返回false
。设置用于布局周围的
边距
。默认情况下,
QLayout
使用样式提供的值。在大多数平台上,边距在所有方向上均为11像素。另请参阅
属性
contentsMarginsᅟ
的设置器。- setContentsMargins(left, top, right, bottom)
- Parameters:
left – int
top – int
right – int
bottom – int
设置布局周围使用的
left
、top
、right
和bottom
边距。默认情况下,
QLayout
使用样式提供的值。在大多数平台上,边距在所有方向上均为11像素。- setEnabled(enable)¶
- Parameters:
enable – 布尔值
如果
enable
为真,则启用此布局,否则禁用它。启用的布局会动态调整以适应变化;禁用的布局则表现得像不存在一样。
默认情况下,所有布局都已启用。
另请参阅
告诉几何管理器将菜单栏
widget
放置在parentWidget()
的顶部,位于contentsMargins()
之外。所有子部件都放置在菜单栏底边的下方。另请参阅
- setSizeConstraint(arg__1)¶
- Parameters:
arg__1 –
SizeConstraint
另请参阅
属性
sizeConstraintᅟ
的设置器。属性
spacingᅟ
的设置器。- sizeConstraint()¶
- Return type:
另请参阅
属性
sizeConstraintᅟ
的获取器。- spacing()¶
- Return type:
整数
另请参阅
属性
spacingᅟ
的获取器。- abstract takeAt(index)¶
- Parameters:
索引 – int
- Return type:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
必须在子类中实现,以从布局中移除位于
index
处的布局项,并返回该项。如果没有这样的项,函数必须不执行任何操作并返回0。项从0开始连续编号。如果移除了一个项,其他项将重新编号。以下代码片段展示了从布局中安全移除所有项目的方法:
- totalHeightForWidth(w)¶
- Parameters:
w – 整数
- Return type:
整数
- totalMinimumHeightForWidth(w)¶
- Parameters:
w – 整数
- Return type:
整数
- unsetContentsMargins()¶
取消布局周围任何用户定义的边距。布局将使用样式提供的默认值。
另请参阅
属性
contentsMarginsᅟ
的重置功能。- update()¶
更新
parentWidget()
的布局。通常你不需要调用这个,因为它会在最合适的时候自动调用。
另请参阅
activate()
invalidate()