class QStackedLayout#

QStackedLayout类提供一个堆叠的窗口部件,每次只显示一个窗口部件。更多

Inheritance diagram of PySide6.QtWidgets.QStackedLayout

概要#

属性#

  • currentIndex - 可见窗口部件的索引位置

  • stackingMode - 决定了子窗口部件的可见性处理方式

方法#

槽函数#

信号#

备注

此文档可能包含自动将 C++ 代码片段翻译为 Python 的代码片段。我们始终欢迎使用翻译贡献。如果您发现翻译有问题,您可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们。

详细描述#

警告

本节包含自动将 C++ 代码片段翻译为 Python 的代码片段,可能包含错误。

QStackedLayout 可用于创建类似于 QTabWidget 提供的用户界面。还有一个基于 QStackedLayout 的便利类 QStackedWidget

QStackedLayout 可以用多个子小部件(“页面”)填充。例如

firstPageWidget = QWidget()
secondPageWidget = QWidget()
thirdPageWidget = QWidget()
stackedLayout = QStackedLayout()
stackedLayout.addWidget(firstPageWidget)
stackedLayout.addWidget(secondPageWidget)
stackedLayout.addWidget(thirdPageWidget)

mainLayout = QVBoxLayout()
mainLayout.addLayout(stackedLayout)
setLayout(mainLayout)

QStackedLayout 没有为用户提供切换页面的内建方法。通常通过一个 QComboBox 或一个 QListWidget 来实现,该部件存储 QStackedLayout 页面的标题。例如

pageComboBox = QComboBox()
pageComboBox.addItem(tr("Page 1"))
pageComboBox.addItem(tr("Page 2"))
pageComboBox.addItem(tr("Page 3"))
pageComboBox.activated.connect(
        stackedLayout.setCurrentIndex)

在填充布局时,小部件被添加到内部列表中。函数 indexOf() 返回小部件在该列表中的索引。小部件可以通过使用 addWidget() 函数添加到列表的末尾,或者使用 insertWidget() 函数插入到给定索引。函数 removeWidget() 从布局中删除给定索引的小部件。可以使用函数 count() 获取布局中小部件的数量。

函数 widget() 返回给定索引位置的小部件。屏幕上显示的小部件的索引由 currentIndex() 提供并可以使用 setCurrentIndex() 进行修改。以类似的方式,可以使用函数 currentWidget() 检索当前显示的小部件,并使用函数 setCurrentWidget() 进行修改。

每当布局中的当前小部件改变或从小部件中删除时,分别发出信号 currentChanged()widgetRemoved()

另请参阅

QStackedWidget QTabWidget

class StackingMode#

此枚举指定布局如何处理其子小部件的可见性。

常量

描述

QStackedLayout.StackOne

只有当前小部件可见。这是默认设置。

QStackedLayout.StackAll

所有小部件都可见。当前小部件仅仅是突出显示。

备注

当使用 from __feature__ import true_property 时可以直接使用属性,否则通过访问器函数使用。

property currentIndexᅟ: int#

该属性持有可见小部件的索引位置。

如果没有当前小部件,当前索引为 -1。

另请参阅

currentWidget() indexOf()

访问函数
property 堆叠模式ᅟ: QStackedLayout.StackingMode#

该属性决定了子部件可见性处理的方式。

默认值为StackOne。将属性设置为 StackAll 可让您利用布局来覆盖具有其他小部件上额外绘制功能的小部件,例如图形编辑器。

访问函数
__init__()#

使用没有父对象的 QStackedLayout 构造一个实例。

This QStackedLayout 必须稍后安装在一个小部件上才能生效。

另请参阅

addWidget() insertWidget()

__init__(parentLayout)
参数:

parentLayoutQLayout

构造一个新的 QStackedLayout 实例并将其插入到给定的 parentLayout 中。

__init__(parent)
参数:

parentQWidget

使用指定的小部件 QStackedLayout 构造一个新实例。

此布局将安装自身到父小部件并在其子部件上管理几何形状。

currentChanged(index)#
参数:

index – int

每当布局中的当前小部件改变时,都会发出此信号。 index 指定新的当前小部件的索引,如果没有新的当前小部件(例如,如果在 QStackedLayout 中没有小部件)则返回 -1。

属性 currentIndex 的通知信号。

currentIndex()#
返回类型:

int

另请参阅

setCurrentIndex()

currentIndex 的获取器。

currentWidget()#
返回类型:

QWidget

返回当前小部件,如果在这个布局中没有小部件则返回 None

insertWidget(index, w)#
参数:
返回类型:

int

在此 QStackedLayout 中在指定的 index 处插入给定的小部件 widget。如果 index 超出范围,则将小部件附加到列表中(在这种情况下,返回的小部件的索引是该小部件的实际索引)。

如果在此函数被调用之前 QStackedLayout 是空的,给定的小部件将成为当前小部件。

在小于或等于当前索引的位置插入新小部件将增加当前索引,但保持当前小部件。

另请参阅

addWidget() removeWidget() setCurrentWidget()

setCurrentIndex(index)#
参数:

index – int

另请参阅

currentIndex()

属性 currentIndexᅟ 的设置器。

setCurrentWidget(w)#
参数:

w - QWidget

设置当前部件为指定的 widget。新的当前部件必须已经包含在此堆叠布局中。

setStackingMode(stackingMode)#
参数:

stackingModeStackingMode

另请参阅

stackingMode()

属性 stackingModeᅟ 的设置器。

stackingMode()#
返回类型:

StackingMode

另请参阅

setStackingMode()

属性 stackingModeᅟ 的获取器。

widget(arg__1)#
参数:

arg__1 – int

返回类型:

QWidget

返回指定 index 的部件,如果给定位置没有部件,则返回 None

另请参阅

currentWidget() indexOf()

widgetRemoved(index)#
参数:

index – int

每当从布局中移除部件时,都会发出此信号。将部件的 index 作为参数传递。

另请参阅

removeWidget()