QStackedWidget

QStackedWidget 类提供了一个堆叠的控件,一次只有一个控件可见。更多...

Inheritance diagram of PySide6.QtWidgets.QStackedWidget

概要#

属性#

  • count - 此堆叠控件包含的控件数量

  • currentIndex - 可见控件的索引位置

方法#

  • def __init__()

  • def addWidget()

  • def count()

  • def currentIndex()

  • def currentWidget()

  • def indexOf()

  • def insertWidget()

  • def removeWidget()

  • def widget()

槽函数#

信号#

注意

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

详细描述#

警告

本节包含自动从C++转换为Python的片段,可能存在错误。

QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是一个在QStackedLayout类之上构建的便利布局小部件。

QStackedLayout类似,QStackedWidget可以构建并用多个子小部件(“页面”)填充。

firstPageWidget = QWidget()
secondPageWidget = QWidget()
thirdPageWidget = QWidget()
stackedWidget = QStackedWidget()
stackedWidget.addWidget(firstPageWidget)
stackedWidget.addWidget(secondPageWidget)
stackedWidget.addWidget(thirdPageWidget)
layout = QVBoxLayout()
layout.addWidget(stackedWidget)
setLayout(layout)

QStackedWidget不提供使用户切换页面的内置方法。这通常通过使用存储QStackedWidget页面标题的QComboBoxQListWidget来完成。例如

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

在填充堆叠小部件时,小部件会被添加到内部列表中。函数 indexOf() 返回小部件在该列表中的索引。小部件可以使用 addWidget() 函数添加到列表末尾,或使用 insertWidget() 函数插入到指定的索引位置。函数 removeWidget() 用于从堆叠小部件中移除小部件。可以使用 count() 函数获取堆叠小部件中包含的小部件数量。

函数 widget() 返回指定索引位置的小部件。屏幕上显示的部件索引由 currentIndex() 提供,并可以使用 setCurrentIndex() 更改。类似地,当前显示的小部件可以使用 currentWidget() 函数获取,并使用 setCurrentWidget() 函数修改。

每当堆叠小部件中的当前小部件更改或从小部件中移除时,会分别发出 currentChanged()widgetRemoved() 信号。

另请参阅

QStackedLayout QTabWidget

注意

可以直接使用当 from __feature__ import true_property 时或在其他情况下使用访问器函数来使用属性。

property countᅟ: int#

该属性包含了这个堆叠小部件内的小部件数量。

默认情况下,此属性包含的值为 0。

另请参阅

currentIndex() widget()

访问函数
属性 currentIndex: int#

此属性保存可见小部件的索引位置。

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

默认情况下,此属性包含-1的值,因为堆栈最初为空。

另请参阅

currentWidget() indexOf()

访问函数
__init__([parent=None])#
参数:

parentQWidget

使用给定的 parent 构造一个 QStackedWidget

addWidget(w)#
参数:

wQWidget

返回类型:

int

将给定的 widget 追加到 QStackedWidget 并返回索引位置。将 widget 的所有权传递给 QStackedWidget

如果在调用此函数之前 QStackedWidget 为空,则 widget 成为当前小部件。

count()#
返回类型:

int

属性 count 的获取器。

函数 currentChanged(arg__1)#
参数:

arg__1 – int

每当当前小部件改变时,都会发射此信号。

参数包含新当前小部件的 index ,如果没有新小部件(例如,在 QStackedWidget 中没有小部件)则为 -1。

属性 currentIndex 的通知信号。

currentIndex()#
返回类型:

int

另请参阅

setCurrentIndex()

属性 currentIndex 的获取器。

currentWidget()#
返回类型:

QWidget

返回当前小部件,如果没有子小部件则返回 None

indexOf(arg__1)#
参数:

arg__1QWidget

返回类型:

int

返回给定 widget 的索引,如果给定的 widget 不是 QStackedWidget 的子项,则返回 -1。

另请参阅

currentIndex() widget()

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

int

将给定的 widget 插入到 QStackedWidget 的指定 index 位置。widget 的所有权转移到 QStackedWidget 。如果 index 超出范围,则将 widget 追加(在这种情况下,返回的是 widget 的实际索引)。

如果在该函数被调用之前,QStackedWidget 是空的,则给定的 widget 将成为当前的 widget。

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

removeWidget(w)#
参数:

wQWidget

QStackedWidget 中移除 widget,即 widget 并未被删除,只是从堆叠布局中移除,导致其被隐藏。

注意

widget 的父对象和父 widget 将保持为 QStackedWidget 。如果应用程序希望重用被移除的 widget,则建议将其重新父化。

setCurrentIndex(index)#
参数:

index – int

另请参阅

currentIndex()

属性 currentIndex 的设置器。

setCurrentWidget(w)#
参数:

wQWidget

将当前 widget 设置为指定的 widget。新的当前 widget 必须已经包含在这个堆叠 widget 中。

widget(arg__1)#
参数:

arg__1 – int

返回类型:

QWidget

返回给定 index 的小部件,如果没有这样的小部件则返回 None

另请参阅

currentWidget() indexOf()

widgetRemoved(index)#
参数:

index – int

每当小部件被移除时,都会发出此信号。小部件的 index 会作为参数传递。

另请参阅

removeWidget()