PySide6.QtWidgets.QGraphicsLinearLayout¶
- class QGraphicsLinearLayout¶
QGraphicsLinearLayout
类提供了一个水平或垂直的布局,用于在图形视图中管理小部件。更多…概要¶
方法¶
def
__init__()
def
addItem()
def
addStretch()
def
alignment()
def
dump()
def
insertItem()
def
insertStretch()
def
itemSpacing()
def
orientation()
def
removeItem()
def
setAlignment()
def
setItemSpacing()
def
setOrientation()
def
setSpacing()
def
spacing()
def
stretchFactor()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
线性布局的默认方向是Qt::Horizontal。你可以通过调用
setOrientation()
,或者通过将Qt::Vertical传递给QGraphicsLinearLayout
的构造函数来选择垂直方向。使用
QGraphicsLinearLayout
最常见的方法是在堆上构造一个对象,将父窗口小部件传递给构造函数,然后通过调用addItem()
来添加窗口小部件和布局。scene = QGraphicsScene() textEdit = scene.addWidget(QTextEdit()) pushButton = scene.addWidget(QPushButton()) form = QGraphicsWidget() scene.addItem(form) layout = QGraphicsLinearLayout(form) layout.addItem(textEdit) layout.addItem(pushButton)
或者,如果您没有将父部件传递给布局的构造函数,您将需要调用
setLayout()
来将此布局设置为该部件的顶级布局,该部件将拥有该布局的所有权。你可以向线性布局添加小部件、布局、拉伸(
addStretch()
、insertStretch()
或setStretchFactor()
)和间距(setItemSpacing()
)。布局将拥有这些项目的所有权。在某些情况下,当布局项目也继承自QGraphicsItem
(如QGraphicsWidget
)时,所有权会出现歧义,因为布局项目属于两个所有权层次结构。请参阅setOwnedByLayout()
的文档以了解如何处理此问题。你可以通过调用count()
和itemAt()
来访问布局中的每个项目。调用removeAt()
或removeItem()
将从布局中移除一个项目,但不会销毁它。QGraphicsLinearLayout中的大小提示和大小策略¶
QGraphicsLinearLayout
尊重每个项目的大小提示和大小策略,当布局包含的空间超过项目可以填充的空间时,每个项目将根据该项目的布局对齐方式进行排列。您可以通过调用setAlignment()
为每个项目设置对齐方式,并通过调用alignment()
检查任何项目的对齐方式。默认情况下,项目对齐到左上角。QGraphicsLinearLayout 中的间距¶
在项目之间,布局会分配一些空间。实际的空间量取决于管理的小部件的当前样式,但常见的间距是4。您也可以通过调用
setSpacing()
来设置自己的间距,并通过调用spacing()
来获取当前的间距值。如果您想为您的项目配置单独的间距,您可以调用setItemSpacing()
。QGraphicsLinearLayout中的拉伸因子¶
您可以为每个项目分配一个拉伸因子,以控制它与其他项目相比将获得多少空间。默认情况下,排列在线性布局中的两个相同的小部件将具有相同的大小,但如果第一个小部件的拉伸因子为1,第二个小部件的拉伸因子为2,则第一个小部件将获得可用空间的1/3,第二个小部件将获得2/3。
QGraphicsLinearLayout
通过将所有项目的拉伸因子相加,然后相应地分配可用空间来计算大小的分布。所有项目的默认拉伸因子为0;因子为0意味着该项目没有任何定义的拉伸因子;实际上这与将拉伸因子设置为1相同。拉伸因子仅适用于布局长度方向上的可用空间(遵循其方向)。如果您想同时控制项目的水平和垂直拉伸,可以使用QGraphicsGridLayout
。QGraphicsLinearLayout 与其他布局的比较¶
QGraphicsLinearLayout
与QVBoxLayout
和QHBoxLayout
非常相似,但与这些类不同的是,它用于管理QGraphicsWidget
和QGraphicsLayout
,而不是QWidget
和QLayout
。- __init__([parent=None])¶
- Parameters:
父级 –
QGraphicsLayoutItem
使用Qt::Horizontal方向构造一个
QGraphicsLinearLayout
实例。parent
被传递给QGraphicsLayout
的构造函数。- __init__(orientation[, parent=None])
- Parameters:
orientation –
Orientation
parent –
QGraphicsLayoutItem
构建一个
QGraphicsLinearLayout
实例。你可以传递布局的orientation
,可以是水平或垂直,parent
则传递给QGraphicsLayout
的构造函数。- addItem(item)¶
- Parameters:
项目 –
QGraphicsLayoutItem
这个便捷函数等同于调用
insertItem
(-1,item
)。- addStretch([stretch=1])¶
- Parameters:
stretch – 整数
这个便捷函数等同于调用
insertStretch
(-1,stretch
)。- alignment(item)¶
- Parameters:
项目 –
QGraphicsLayoutItem
- Return type:
AlignmentFlag
的组合
返回
item
的对齐方式。默认对齐方式是Qt::AlignTop | Qt::AlignLeft。对齐方式决定了在布局中有比小部件可以占据的更多空间的情况下,项目如何在其分配的空间内定位。
另请参阅
- dump([indent=0])¶
- Parameters:
缩进 – int
- insertItem(index, item)¶
- Parameters:
index – 整数
项目 –
QGraphicsLayoutItem
将
item
插入到布局中的index
位置,或者插入到当前位于index
位置的任何项目之前。另请参阅
addItem()
itemAt()
insertStretch()
setItemSpacing()
- insertStretch(index[, stretch=1])¶
- Parameters:
index – 整数
stretch – int
在
index
处插入一段stretch
,或在当前位于index
的任何项目之前插入。- itemSpacing(index)¶
- Parameters:
索引 – int
- Return type:
浮点数
返回在
index
处项目之后的间距。另请参阅
返回布局方向。
另请参阅
- removeItem(item)¶
- Parameters:
项目 –
QGraphicsLayoutItem
从布局中移除
item
而不销毁它。item
的所有权转移给调用者。另请参阅
removeAt()
insertItem()
- setAlignment(item, alignment)¶
- Parameters:
项目 –
QGraphicsLayoutItem
alignment –
AlignmentFlag
的组合
将
item
的对齐方式设置为alignment
。如果item
的对齐方式发生变化,布局将自动失效。另请参阅
alignment()
invalidate()
- setItemSpacing(index, spacing)¶
- Parameters:
index – 整数
spacing – 浮点数
将
index
处的项目后的间距设置为spacing
。另请参阅
- setOrientation(orientation)¶
- Parameters:
方向 –
Orientation
将布局方向更改为
orientation
。更改布局方向将自动使布局无效。另请参阅
- setSpacing(spacing)¶
- Parameters:
间距 – float
将布局的间距设置为
spacing
。间距指的是项目之间的垂直和水平距离。- setStretchFactor(item, stretch)¶
- Parameters:
项目 –
QGraphicsLayoutItem
stretch – int
将
item
的拉伸因子设置为stretch
。如果项目的拉伸因子发生变化,此函数将使布局无效。将
stretch
设置为0会从项目中移除拉伸因子,实际上等同于将stretch
设置为1。另请参阅
- spacing()¶
- Return type:
浮点数
返回布局的间距。间距指的是项目之间的垂直和水平距离。
另请参阅
- stretchFactor(item)¶
- Parameters:
项目 –
QGraphicsLayoutItem
- Return type:
整数
返回
item
的拉伸因子。默认的拉伸因子是0,意味着该项目没有分配拉伸因子。另请参阅