PySide6.QtWidgets.QStackedLayout

class QStackedLayout

QStackedLayout 类提供了一个小部件堆栈,其中一次只能看到一个小部件。更多

PySide6.QtWidgets.QStackedLayout 的继承图

概要

属性

方法

插槽

信号

注意

本文档可能包含从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 没有提供用户切换页面的内在方法。这通常通过一个存储 QStackedLayout 页面标题的 QComboBoxQListWidget 来完成。例如:

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()

Access functions:
property stackingModeᅟ: QStackedLayout.StackingMode

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

默认值为StackOne。将属性设置为StackAll允许您利用布局来处理在其他小部件之上进行额外绘制的覆盖小部件,例如图形编辑器。

Access functions:
__init__()

构造一个没有父级的QStackedLayout

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

另请参阅

addWidget() insertWidget()

__init__(parentLayout)
Parameters:

parentLayoutQLayout

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

__init__(parent)
Parameters:

父级QWidget

使用给定的parent构造一个新的QStackedLayout

此布局将安装在parent小部件上,并管理其子部件的几何形状。

currentChanged(index)
Parameters:

索引 – int

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

属性 currentIndexᅟ 的通知信号。

currentIndex()
Return type:

整数

另请参阅

setCurrentIndex()

属性 currentIndexᅟ 的获取器。

currentWidget()
Return type:

QWidget

返回当前的小部件,如果此布局中没有小部件,则返回None

insertWidget(index, w)
Parameters:
Return type:

整数

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

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

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

另请参阅

addWidget() removeWidget() setCurrentWidget()

setCurrentIndex(index)
Parameters:

索引 – int

另请参阅

currentIndex()

属性 currentIndexᅟ 的设置器。

setCurrentWidget(w)
Parameters:

wQWidget

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

setStackingMode(stackingMode)
Parameters:

stackingModeStackingMode

另请参阅

stackingMode()

属性 stackingModeᅟ 的设置器。

stackingMode()
Return type:

StackingMode

另请参阅

setStackingMode()

属性 stackingModeᅟ 的获取器。

widget(index)
Parameters:

索引 – int

Return type:

QWidget

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

另请参阅

currentWidget() indexOf()

widgetRemoved(index)
Parameters:

索引 – int

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

另请参阅

removeWidget()