PySide6.QtWidgets.QStackedWidget

class QStackedWidget

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

PySide6.QtWidgets.QStackedWidget 的继承图

概要

属性

方法

插槽

信号

注意

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

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

Access functions:
property currentIndexᅟ: int

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

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

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

另请参阅

currentWidget() indexOf()

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

使用给定的parent构造一个QStackedWidget

addWidget(w)
Parameters:

wQWidget

Return type:

整数

将给定的widget附加到QStackedWidget并返回索引位置。widget的所有权转移给QStackedWidget

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

count()
Return type:

整数

属性 countᅟ 的获取器。

currentChanged(index)
Parameters:

索引 – int

每当当前小部件发生变化时,都会发出此信号。

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

属性 currentIndexᅟ 的通知信号。

currentIndex()
Return type:

整数

另请参阅

setCurrentIndex()

属性 currentIndexᅟ 的获取器。

currentWidget()
Return type:

QWidget

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

indexOf(widget)
Parameters:

widgetQWidget

Return type:

整数

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

另请参阅

currentIndex() widget()

insertWidget(index, w)
Parameters:
Return type:

整数

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

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

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

removeWidget(w)
Parameters:

wQWidget

QStackedWidget中移除widget。也就是说,widget不会被删除,只是从堆叠布局中移除,导致它被隐藏。

注意

widget 的父对象和父部件将保持为 QStackedWidget。如果应用程序想要重用被移除的 widget,则建议重新设置其父对象。

setCurrentIndex(index)
Parameters:

索引 – int

另请参阅

currentIndex()

属性 currentIndexᅟ 的设置器。

setCurrentWidget(w)
Parameters:

wQWidget

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

widget(index)
Parameters:

索引 – int

Return type:

QWidget

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

另请参阅

currentWidget() indexOf()

widgetRemoved(index)
Parameters:

索引 – int

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

另请参阅

removeWidget()