class QTabWidget#

QTabWidget类提供了一个标签页控件堆栈。更多

Inheritance diagram of PySide6.QtWidgets.QTabWidget

概要#

属性#

  • countᅟ - 标签栏中的标签数量

  • currentIndexᅟ - 当前标签页的索引位置

  • documentModeᅟ - 是否以适合文档页面的模式渲染标签控件。这与macOS上的文档模式相同

  • elideModeᅟ - 在标签栏中省略文本的方式

  • iconSizeᅟ - 标签栏中图标的尺寸

  • movableᅟ - 该属性表示用户是否可以在标签栏区域内移动标签。如果为true,则用户可以移动标签

  • tabBarAutoHideᅟ - 如果为true,则当标签栏包含少于2个标签时,标签栏将自动隐藏

  • tabPositionᅟ - 该标签控件中标签的位置

  • tabShapeᅟ - 该标签控件中标签的形状

  • tabsClosable - 是否自动为每个标签添加关闭按钮

  • usesScrollButtons - 标签栏是否使用按钮来滚动标签,当有很多标签时

方法#

虚方法#

#

信号#

注意

本文档可能包含从C++到Python自动翻译的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译中存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。

详细描述#

../../_images/windows-tabwidget.png

标签页控件提供了标签栏(见QTabBar)和用于显示与每个标签相关页面内容的“页面区域”。默认情况下,标签栏在页面区域上方显示,但不同的配置也是可用的(见TabPosition)。每个标签都与一个不同的小部件(称为页面)相关联。只有当前页面在页面区域中显示;所有其他的页面都是隐藏的。用户可以通过点击其标签或按下其Alt+*字母*快捷键(如果有)来显示不同的页面。

使用QTabWidget的常规方法是

  1. 创建一个QTabWidget

  2. 为标签对话框中的每个页面创建一个QWidget,但不要为它们指定父控件。

  3. 使用布局将子控件插入到页面小部件中,就像正常情况下一样定位它们。

  4. 使用 addTab()insertTab() 将页面小部件放入选项卡小部件中,为每个选项卡提供一个合适的标签和一个可选的快捷键。

选项卡的顺序由 tabPosition 定义,它们的形状由 tabShape 定义。

当用户选择一个页面时,会触发 currentChanged() 信号。

当前页面索引可以通过 currentIndex() 获取,当前页面小部件用 currentWidget() 表示。您可以使用 widget() 获取具有给定索引的页面小部件的指针,并使用 indexOf() 找到小部件的索引位置。使用 setCurrentWidget()setCurrentIndex() 显示特定的页面。

您可以使用 setTabText()setTabIcon() 更改选项卡的文本和图标。使用 removeTab() 将选项卡及其关联的页面移除。

在任意给定时间,每个选项卡要么启用,要么禁用(参见 setTabEnabled() )。如果选项卡启用,则会正常绘制选项卡文本,用户可以选中该选项卡。如果它被禁用,则选项卡会以不同的方式绘制,用户不能选择该选项卡。请注意,即使选项卡被禁用,页面仍然可能可见,例如,如果所有选项卡都恰好被禁用。

选项卡小部件是拆分复杂对话框的非常好的方式。另一个选择是使用 QStackedWidget,您可以为它提供一些在页面间导航的手段,例如,一个 QToolBar 或一个 QListWidget

QTabWidget 中的大多数功能由一个 QTabBar (顶部,提供标签)和一个 QStackedWidget (大部分区域,组织独立页面)提供。

另请参阅

QTabBar QStackedWidget QToolBox 销签对话框示例

class TabPosition#

此枚举类型定义了 QTabWidget 绘制标签行的地方

常量

描述

QTabWidget.North

标签被绘制在页面之上。

QTabWidget.South

标签被绘制在页面之下。

QTabWidget.West

标签被绘制在页面左侧。

QTabWidget.East

标签被绘制在页面右侧。

class TabShape#

此枚举类型定义了标签的形状

常量

描述

QTabWidget.Rounded

标签以圆形外观绘制。这是默认形状。

QTabWidget.Triangular

标签以三角形外观绘制。

注意

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

property countᅟ: int#

此属性保留标签栏中的标签数量。

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

访问函数
property currentIndexᅟ: int#

此属性保留当前标签页的索引位置。

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

默认情况下,此属性包含 -1 的值,因为widget最初没有标签。

访问函数
property documentModeᅟ: bool#

此属性保留是否在适合文档页面的模式下渲染标签小部件。这与macOS上的文档模式相同。

当设置此属性时,标签小部件框架不会被渲染。此模式用于显示文档类型页面,其中页面覆盖了大部分标签小部件区域。

访问函数
属性 elideModeᅟ: Qt.TextElideMode#

此属性用于控制标签栏中文字的裁剪方式。

此属性控制当给定标签栏大小不足以显示项目时的文字裁剪方式。

默认情况下,此值取决于样式。

访问函数
属性 iconSizeᅟ: QSize#

此属性用于保存标签栏中图标的尺寸。

默认值取决于样式。这是图标可能的最大尺寸。如果图标比这个尺寸小,则不会进行放大。

另请参阅

iconSize

访问函数
属性 movableᅟ: bool#

此属性用于保存用户是否可以在标签栏区域内移动标签。

默认情况下,此属性为 false;

访问函数
属性 tabBarAutoHideᅟ: bool#

如果为真,当标签栏包含的标签少于2个时,标签栏会被自动隐藏。

默认情况下,此属性为 false。

另请参阅

visible

访问函数
属性 tabPositionᅟ: QTabWidget.TabPosition#

此属性包含此标签控件中标签的位置。

此属性的值由 TabPosition 枚举描述。

默认情况下,此属性设置为 North

另请参阅

TabPosition

访问函数
属性tabShape:QTabWidget.TabShape#

此属性包含此标签控件中标签的形状。

此属性的值可能是 Rounded(默认)或 Triangular

另请参阅

TabShape

访问函数
属性tabsClosable:bool#

此属性包含是否自动为每个标签添加关闭按钮。

另请参阅

tabsClosable()

访问函数
属性usesScrollButtons:bool#

此属性包含是否应使用按钮在具有许多标签的标签栏中滚动标签。

在标签栏中的标签过多,以至于无法适应其大小时,标签栏可以选择扩展其大小或添加按钮以便于通过标签进行滚动。

默认情况下,此值取决于样式。

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

parentQWidget

使用父控件 parent 构造标签控件。

addTab(widget, icon, label)#
参数:
返回类型:

int

这是一个重载函数。

将具有指定 pageiconlabel 的标签添加到标签小部件中,并返回标签在标签栏中的索引。将 page 的所有权传递给 QTabWidget

此函数与 addTab() 相同,但另外增加了一个 icon

addTab(widget, arg__2)
参数:
  • 小部件QWidget

  • arg__2 – str

返回类型:

int

将具有指定 pagelabel 的标签添加到标签小部件中,并返回标签在标签栏中的索引。将 page 的所有权传递给 QTabWidget

如果标签的 label 包含一个 ampersand(&),那么紧跟在 ampersand 后面的字母将被用作标签的快捷键,例如,如果标签是“Bro&wse”,则 Alt+W 将成为快捷键,这将使焦点移动到此标签。

注意

如果您在调用 show() 后调用 addTab(),布局系统将尝试调整其小部件层次结构的变化,可能会引起闪烁。为了防止这种情况,您可以在更改之前将 updatesEnabled 属性设置为 false;请记得在更改完成后将属性设置为 true,以便小部件再次接收绘图事件。

另请参阅

insertTab()

clear()#

删除所有页面,但不会删除它们。调用此函数相当于连续调用 removeTab() 直到标签小部件为空。

cornerWidget([corner=Qt.TopRightCorner])#
参数:

cornerCorner

返回类型:

QWidget

返回标签小部件的 corner 中的小部件或 None

另请参阅

setCornerWidget()

count()#
返回类型:

int

属性 countᅟ 的获取器。

currentChanged(index)#
参数:

index – 整数

每当当前页面索引发生变化时,就会发出此信号。参数是新当前页的 index 位置,如果没有新位置(例如,如果没有在 QTabWidget 中的小部件),则为 -1

属性 currentIndexᅟ 的通知信号。

currentIndex()#
返回类型:

int

另请参阅

setCurrentIndex()

属性 currentIndexᅟ 的获取器。

currentWidget()#
返回类型:

QWidget

返回当前由选项卡对话框显示的页面指针。选项卡对话框会尽力确保此值永远不会为 0(但如果足够努力,则可以是)。

documentMode()#
返回类型:

布尔值

另请参阅

setDocumentMode()

属性 documentModeᅟ 的获取器。

elideMode()#
返回类型:

文本省略模式

另请参阅

setElideMode()

属性 elideModeᅟ 的获取器。

iconSize()#
返回类型:

QSize

另请参阅

setIconSize()

属性 iconSizeᅟ 的获取器。

indexOf(widget)#
参数:

小部件QWidget

返回类型:

int

返回小部件 w 所占页面的索引位置,如果找不到小部件则返回 -1。

initStyleOption(option)#
参数:

optionQStyleOptionTabWidgetFrame

使用此 QTabWidget 的值来初始化 option。此方法对于子类很有用,当它们需要一个 QStyleOptionTabWidgetFrame 时,但不想亲自填写所有信息。

insertTab(index, widget, arg__3)#
参数:
  • index – 整数

  • 小部件QWidget

  • arg__3 – str

返回类型:

int

将具有给定 labelpage 的标签插入到指定索引的标签小部件中,并返回插入的标签在标签栏中的索引。将 page 的所有权传递给 QTabWidget

标签显示在标签中,其外观可能因标签小部件的配置而异。

如果标签的 label 包含一个 ampersand(&),那么紧跟在 ampersand 后面的字母将被用作标签的快捷键,例如,如果标签是“Bro&wse”,则 Alt+W 将成为快捷键,这将使焦点移动到此标签。

如果 index 超出范围,则仅将标签附加到末尾。否则,在指定位置插入。

如果在调用此函数之前 QTabWidget 为空,则新页面成为当前页面。在当前索引处或索引低于当前索引的位置插入新标签会递增当前索引,但保持当前页面。

注意

如果您在调用 show() 之后调用 insertTab(),布局系统将尝试调整其小部件层次结构中的更改并可能导致闪烁。为了防止这种情况,您可以在更改前将 updatesEnabled 属性设置为 false;记得在更改完成后将属性设置回 true,使得小部件再次接收绘制事件。

另请参阅

addTab()

insertTab(index, widget, icon, label)
参数:
  • index – 整数

  • 小部件QWidget

  • 图标QIcon

  • 标签 – str

返回类型:

int

这是一个重载函数。

在指定 index 的选项卡小部件中插入具有给定 labelpageicon 的标签,并返回插入的标签在标签栏中的索引。将 page 的所有权传递给 QTabWidget

此函数与 insertTab() 相同,但增加了 icon 参数。

isMovable()#
返回类型:

布尔值

获取 movableᅟ 属性的值。

isTabEnabled(index)#
参数:

index – 整数

返回类型:

布尔值

如果位置 index 的页面已启用,则返回 true;否则返回 false

isTabVisibleindex)#
参数:

index – 整数

返回类型:

布尔值

如果位置 index 的页面是可见的,则返回 true;否则返回 false。

另请参阅

setTabVisible()

removeTabindex)#
参数:

index – 整数

从该小部件堆栈中移除位置 index 的标签。页面小部件本身不会被删除。

另请参阅

addTab() insertTab()

setCornerWidgetw[, corner=Qt.TopRightCorner])#
参数:

将指定的 widget 设置为在选项卡的指定 corner 显示。小部件的几何形状基于小部件的 sizeHint()style()

仅使用 corner 的水平元素。

传递 None 显示在角落没有小部件。

任何之前设置的角落小部件将被隐藏。

当选项卡小部件被销毁时,此处设置的所有小部件都将被删除,除非你设置其他角落小部件(或 None)后单独移动小部件。

注意:角落小部件是为 NorthSouth 选项卡位置设计的;其他方向已知无法正常工作。

setCurrentIndex(index)#
参数:

index – 整数

另请参阅

currentIndex()

当前索引属性 currentIndex 的设置器。

setCurrentWidget(widget)#
参数:

小部件QWidget

使 widget 成为当前小部件。所使用的 widget 必须是此选项卡小部件中的一个页面。

setDocumentMode(set)#
参数:

set – bool

另请参阅

documentMode()

文档模式属性 documentMode 的设置器。

setElideMode(mode)#
参数:

modeTextElideMode

另请参阅

elideMode()

属性elideModeᅟ的设置器。

setIconSize(size)#
参数:

sizeQSize

另请参阅

iconSize()

属性iconSizeᅟ的设置器。

setMovable(movable)#
参数:

movable – bool

另请参阅

isMovable()

属性movableᅟ的设置器。

setTabBar(arg__1)#
参数:

arg__1QTabBar

用 tab bar tb 替换对话框的 QTabBar 标题。注意,必须在添加任何标签之前调用此函数,否则行为未定义。

另请参阅

tabBar()

setTabBarAutoHide(enabled)#
参数:

enabled – bool

另请参阅

tabBarAutoHide()

属性tabBarAutoHideᅟ的设置器。

setTabEnabled(index, enabled)#
参数:
  • index – 整数

  • enabled – bool

如果enable为 true,则启用在位置index的页面;否则禁用位置index的页面。标签被适当重绘。

QTabWidget 使用 setEnabled() 进行内部操作,而不是保留一个单独的标志。

请注意,即使禁用的标签/页面也可能可见。如果页面已经可见,QTabWidget 不会隐藏它;如果所有页面都被禁用,QTabWidget 将显示其中之一。

setTabIcon(index, icon)
参数:
  • index – 整数

  • 图标QIcon

设置位置 index 的标签的图标。

另请参阅

tabIcon()

setTabPosition(position)
参数:

positionTabPosition

另请参阅

tabPosition()

属性 tabPosition 的设置器。

setTabShape(s)
参数:

sTabShape

另请参阅

tabShape()

属性 tabShape 的设置器。

setTabText(index, text)
参数:
  • index – 整数

  • text – str

定义位置 index 页的标签的新标签。

如果提供的文本包含一个与字符(’&’),则为其自动创建一个快捷键。‘&’之后的字符将被用作快捷键。任何之前的快捷键将被覆盖,或者在没有定义快捷键的文本中清除。有关详细信息,请参阅 QShortcut 文档(要显示实际的与字符,请使用 ‘&&’)。

另请参阅

tabText()

setTabToolTip(index, tip)
参数:
  • index – 整数

  • tip – str

将位置 index 页的标签的工具提示设置为 tip

另请参阅

tabToolTip()

setTabVisible(index, visible)
参数:
  • index – 整数

  • visible – bool

如果 visible 为真,则位置位于 index 的页面是可见的;否则,位置位于 index 的页面是隐藏的。页面的标签将相应地重绘。

另请参阅

isTabVisible()

setTabWhatsThis(index, text)
参数:
  • index – 整数

  • text – str

将位置位于 index 的页面的What's This帮助文本设置为 text

另请参阅

tab WhatsThis()

setTabsClosable(closeable)
参数:

closeable – 布尔值

另请参阅

tabsClosable()

属性 tabsClosable 的设置器。

setUsesScrollButtons(useButtons)
参数:

useButtons – 布尔值

另请参阅

usesScrollButtons()

属性 usesScrollButtons 的设置器。

tabBar()
返回类型:

QTabBar

返回当前的 QTabBar

另请参阅

setTabBar()

tabBarAutoHide()
返回类型:

布尔值

另请参阅

setTabBarAutoHide()

属性 tabBarAutoHide 的获取器。

tabBarClicked(index)
参数:

index – 整数

当用户点击一个标签时,此信号被发出。在 index 中。

index 指的是被点击的标签,或者如果没有标签在光标下,则为 -1。

tabBarDoubleClicked(index)
参数:

index – 整数

当用户双击一个标签时,此信号被发出。在 index 中。

index 是被点击的标签的索引,或者如果没有标签在光标下,则为 -1。

tabCloseRequested(index)
参数:

index – 整数

当点击标签上的关闭按钮时,此信号被发出。索引 index 是应被移除的索引。

另请参阅

setTabsClosable()

tabIcon(index)
参数:

index – 整数

返回类型:

QIcon

获取位于 index 位置的页面标签的图标。

另请参阅

setTabIcon()

tabInserted(index)#
参数:

index – 整数

在此虚拟处理程序被调用后,新标签已添加或插入到位置 index

另请参阅

tabRemoved()

tabPosition()#
返回类型:

TabPosition

另请参阅

setTabPosition()

属性 tabPosition 的获取器。

tabRemoved(index)#
参数:

index – 整数

在此虚拟处理程序被调用后,从位置 index 移除了标签。

另请参阅

tabInserted()

tabShape()#
返回类型:

TabShape

另请参阅

setTabShape()

属性 tabShape 的获取器。

tabText(index)#
参数:

index – 整数

返回类型:

str

获取位于 index 位置的页面标签的标签文本。

另请参阅

setTabText()

tabToolTip(index)#
参数:

index – 整数

返回类型:

str

获取位置为 index 的页面的标签工具提示或如果没有设置工具提示则为空字符串。

另请参阅

setTabToolTip()

tabWhatsThis(index)#
参数:

index – 整数

返回类型:

str

获取位置为 index 的页面的“这是什么”帮助文本,如果没有设置帮助文本则为空字符串。

另请参阅

setTabWhatsThis()

tabsClosable()#
返回类型:

布尔值

另请参阅

setTabsClosable()

属性 tabsClosable 的获取器。

usesScrollButtons()#
返回类型:

布尔值

另请参阅

setUsesScrollButtons()

属性 usesScrollButtons 的获取器。

widget(index)#
参数:

index – 整数

返回类型:

QWidget

返回索引位置为 index 的标签页或当 index 超出范围时返回 None