QTabBar 类

QTabBar 类提供了一个标签栏,例如用于标签对话框。 更多...

头文件 #include <QTabBar>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QWidget

公共类型

枚举ButtonPosition { LeftSide, RightSide }
枚举SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab }
枚举Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, TriangularNorth, …, TriangularEast }

属性

公共函数

QTabBar(QWidget *parent = nullptr)
virtual~QTabBar()
QStringaccessibleTabName(int index) const
intaddTab(const QString &text)
intaddTab(const QIcon &icon, const QString &text)
boolautoHide() const
boolchangeCurrentOnDrag() const
intcount() const
intcurrentIndex() const
booldocumentMode() const
booldrawBase() const
Qt::TextElideModeelideMode() const
boolexpanding() const
QSizeiconSize() const
intinsertTab(int index, const QString &text)
intinsertTab(int index, const QIcon &icon, const QString &text)
boolisMovable() const
boolisTabEnabled(int index) const
boolisTabVisible(int index) const
voidmoveTab(int from, int to)
voidremoveTab(int index)
QTabBar::SelectionBehaviorselectionBehaviorOnRemove() const
voidsetAccessibleTabName(int index, const QString &name)
voidsetAutoHide(bool hide)
voidsetChangeCurrentOnDrag(bool change)
voidsetDocumentMode(bool set)
voidsetDrawBase(bool drawTheBase)
voidsetElideMode(Qt::TextElideMode mode)
voidsetExpanding(bool enabled)
voidsetIconSize(const QSize &size)
voidsetMovable(bool movable)
voidsetSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior)
voidsetShape(QTabBar::Shape shape)
voidsetTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget)
voidsetTabData(int index, const QVariant &data)
voidsetTabEnabled(int index, bool enabled)
voidsetTabIcon(int index, const QIcon &icon)
voidsetTabText(int index, const QString &text)
voidsetTabTextColor(int index, const QColor &color)
voidsetTabToolTip(int index, const QString &tip)
voidsetTabVisible(int index, bool visible)
voidsetTabWhatsThis(int index, const QString &text)
voidsetTabsClosable(bool closable)
voidsetUsesScrollButtons(bool useButtons)
QTabBar::Shapeshape() const
inttabAt(const QPoint &position) const
QWidget *tabButton(int index, QTabBar::ButtonPosition position) const
QVarianttabData(int index) const
QIcontabIcon(int index) const
QRecttabRect(int index) const
QStringtabText(int index) const
QColortabTextColor(int index) const
QStringtabToolTip(int index) const
QStringtabWhatsThis(int index) const
booltabsClosable() const
boolusesScrollButtons() const

重实现的公共函数

virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override

公共槽

voidsetCurrentIndex(int index)

信号

voidcurrentChanged(int index)
voidtabBarClicked(int index)
voidtabBarDoubleClicked(int index)
voidtabCloseRequested(int index)
voidtabMoved(int from, int to)

保护函数

virtual voidinitStyleOption(QStyleOptionTab *option, int tabIndex) const
virtual QSizeminimumTabSizeHint(int index) const
virtual voidtabInserted(int index)
virtual voidtabLayoutChange()
virtual voidtabRemoved(int index)
virtual QSizetabSizeHint(int index) const

重新实现的保护函数

virtual voidchangeEvent(QEvent *event) override
virtual boolevent(QEvent *event) override
virtual voidhideEvent(QHideEvent *) override
virtual voidkeyPressEvent(QKeyEvent *event) override
virtual voidmouseDoubleClickEvent(QMouseEvent *event) override
virtual voidmouseMoveEvent(QMouseEvent *event) override
virtual voidmousePressEvent(QMouseEvent *event) override
virtual voidmouseReleaseEvent(QMouseEvent *event) override
virtual voidpaintEvent(QPaintEvent *) override
virtual voidresizeEvent(QResizeEvent *) override
virtual voidshowEvent(QShowEvent *) override
virtual voidtimerEvent(QTimerEvent *event) override
virtual voidwheelEvent(QWheelEvent *event) override

详细描述

QTabBar 使用简单;使用预定义的形状之一绘制标签页,在标签页被选中时发出信号。它可以被继承以定制外观和感觉。Qt 也提供了一个现成的QTabWidget

每个标签都有tabText(),可选的tabIcon(),可选的tabToolTip(),可选的tabWhatsThis() 和可选的tabData()。可以使用 setTabText(),setTabIconsetTabToolTipsetTabWhatsThissetTabData() 改变标签属性。可以使用setTabEnabled() 单独启用或禁用每个标签。

每个标签可以以不同的颜色显示文本。可以使用 tabTextColor() 函数找到当前标签的文本颜色。使用setTabTextColor() 为特定标签设置文本颜色。

使用 addTab() 添加标签,或使用 insertTab() 在特定位置插入标签。总标签数由count给出。可以使用 removeTab() 从标签栏中删除标签。通过结合使用 removeTab() 和 insertTab(),可以将标签移动到不同的位置。

属性shape定义了标签的表现形式。形状的选择完全是个人喜好问题,尽管标签对话框(如首选项等)通常使用RoundedNorth。除对话框外的窗口中的标签控制通常几乎总是使用RoundedSouthTriangularSouth。在所有页面本质上相似的许多电子表格和其他标签控制中,使用TriangularSouth,而RoundedSouth通常在使用页面不同时(例如多页工具调板)使用。QTabBar的默认值为RoundedNorth

QTabBar API中最重要的一部分是currentChanged()信号。每当当前标签改变时(即使在启动时,当前标签从'none'变为其他标签时)都会发出此信号。还有一个槽setCurrentIndex(),可以用来程序化地选择一个标签。函数currentIndex()返回当前标签的索引,count保存标签数。

QTabBar按照QAbstractButton的方式创建自动访问键;例如,如果标签的标签是"&Graphics",则Alt+G成为切换到该标签的快捷键。

以下虚拟函数可能需要重新实现,以便调整每个标签的外观和感觉或存储额外的数据。

对于子类,您可能还需要tabRect()函数,该函数返回单个标签的可视几何形状。

Screenshot of a Fusion style tab barFusion widget style中显示的标签栏。
Screenshot of a truncated Fusion tab bar在Fusion widget style中显示的截断标签栏。

另请参阅QTabWidget

成员类型文档

enum QTabBar::ButtonPosition

此枚举类型列出了标签上的小部件位置。

常量描述
QTabBar::LeftSide0标签的左侧。
QTabBar::RightSide1标签的右侧。

enum QTabBar::SelectionBehavior

此枚举类型列出了当移除标签并且被移除的标签也是当前标签时,QTabBar的行为。

常量描述
QTabBar::SelectLeftTab0选择被移除的标签左侧的标签。
QTabBar::SelectRightTab1选择被移除的标签右侧的标签。
QTabBar::SelectPreviousTab2选择上一个选中的标签。

enum QTabBar::Shape

此枚举类型列出了QTabBar支持的内置形状。将它们视为提示,因为某些样式可能无法渲染某些形状。但是,应尊重位置。

常量描述
QTabBar::RoundedNorth0位于页面上方的一般圆角外观。
QTabBar::RoundedSouth1位于页面下方的一般圆角外观。
QTabBar::RoundedWest2位于页面左侧的一般圆角外观。
QTabBar::RoundedEast3位于页面右侧的一般圆角外观。
QTabBar::TriangularNorth4位于页面上的三角形标签。
QTabBar::TriangularSouth5类似于在 Excel 工作表中使用的三角形标签,例如
QTabBar::TriangularWest6页面左侧的三角形标签。
QTabBar::TriangularEast7页面右侧的三角形标签。

属性文档

autoHide : bool

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

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

访问函数

boolautoHide() const
voidsetAutoHide(bool hide)

另请参阅QWidget::visible

changeCurrentOnDrag : bool

如果为真,则在拖动到标签栏时,将自动更改当前标签。

注意:您还应将 acceptDrops 属性设置为 true,以使此功能生效。

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

访问函数

boolchangeCurrentOnDrag() const
voidsetChangeCurrentOnDrag(bool change)

[只读] count : const int

此属性包含标签栏中的标签数量

访问函数

intcount() const

currentIndex : int

此属性包含标签栏可见标签的索引

如果不存在当前标签,则当前索引为 -1。

访问函数

intcurrentIndex() const
voidsetCurrentIndex(int index)

通知信号

voidcurrentChanged(int index)

documentMode : bool

此属性包含是否以适合主窗口的模式绘制标签栏

此属性用作对样式的提示,以以与通常在标签小部件中不同的方式绘制标签。在 macOS 上,它将与 Safari 或 Sierra's Terminal.app 中的标签类似。

访问函数

booldocumentMode() const
voidsetDocumentMode(bool set)

另请参阅QTabWidget::documentMode

drawBase : bool

定义标签栏是否绘制其底部。

如果为真,则 QTabBar 将相对于样式重叠绘制底部。否则,仅绘制标签。

访问函数

booldrawBase() const
voidsetDrawBase(bool drawTheBase)

另请参阅QStyle::pixelMetricQStyle::PM_TabBarBaseOverlapQStyleOptionTabBarBase

elideMode : Qt::TextElideMode

如何在标签栏中裁剪文本

此属性控制在给定标签栏大小时,当没有足够的空间显示项目时,如何省略项目。

默认情况下,此值是样式相关的。

访问函数

Qt::TextElideModeelideMode() const
voidsetElideMode(Qt::TextElideMode mode)

另请参阅QTabWidget::elideModeusesScrollButtonsQStyle::SH_TabBar_ElideMode

expanding : bool

如果 expanding 为 true,则 QTabBar 会扩展标签以使用空白空间。

默认情况下,此值为 true。

访问函数

boolexpanding() const
voidsetExpanding(bool enabled)

另请参阅QTabWidget::documentMode

iconSize : QSize

此属性存储标签栏图标的大小

默认值依样式而定。 iconSize 代表最大尺寸;对于更小的图标,不会进行缩放。

访问函数

QSizeiconSize() const
voidsetIconSize(const QSize &size)

见亦QTabWidget::iconSize.

movable : bool

此属性存储用户是否可以移动标签栏内的标签

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

访问函数

boolisMovable() const
voidsetMovable(bool movable)

selectionBehaviorOnRemove : SelectionBehavior

当调用 removeTab 并要删除当前标签时,设置哪个标签为当前标签。

默认值为 SelectRightTab

访问函数

QTabBar::SelectionBehaviorselectionBehaviorOnRemove() const
voidsetSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior)

见亦removeTab

shape : Shape

此属性存储标签栏内标签的形状

此属性的值有 Shape 枚举描述。

访问函数

QTabBar::Shapeshape() const
voidsetShape(QTabBar::Shape shape)

tabsClosable : bool

此属性存储是否应该在每个标签上放置关闭按钮

当 tabsClosable 设置为 true 时,根据样式,关闭按钮将显示在每个标签的左侧或右侧。当按钮被点击时,会发出 tabCloseRequested 信号。

默认值为 false。

访问函数

booltabsClosable() const
voidsetTabsClosable(bool closable)

见亦setTabButton() 和 tabRemoved

usesScrollButtons : bool

此属性存储当标签栏有太多标签时,是否使用按钮来回滚标签

当标签栏的标签数量超过其尺寸时,标签栏可以选择扩展其尺寸或添加按钮,允许你滚动标签。

默认情况下,此值是样式相关的。

访问函数

boolusesScrollButtons() const
voidsetUsesScrollButtons(bool useButtons)

见亦elideModeQTabWidget::usesScrollButtonsQStyle::SH_TabBar_PreferNoArrows

成员函数文档

[explicit] QTabBar::QTabBar(QWidget *parent = nullptr)

创建一个新的带有指定 parent 的标签栏。

[virtual noexcept] QTabBar::~QTabBar()

销毁标签栏。

QString QTabBar::accessibleTabName(int index) const

返回位置为 index 的标签的可访问名称,如果 index 超出范围,则返回空字符串。

参见setAccessibleTabName()。

int QTabBar::addTab(const QString &text)

添加一个带有文本 text 的新标签。返回新标签的索引。

int QTabBar::addTab(const QIcon &icon, const QString &text)

这是一个重载函数。

添加一个带有图标 icon 和文本 text 的新标签。返回新标签的索引。

[覆盖虚拟保护] void QTabBar::changeEvent(QEvent *event)

重实现:QWidget::changeEvent(QEvent *event).

[信号] void QTabBar::currentChanged(int index)

当标签栏当前标签改变时发出此信号。新的当前标签具有给定的 index,如果没有新的一个(例如,如果没有任何标签在 QTabBar 中),则为 -1

注意:属性 currentIndex 的通知信号。

[覆盖虚拟保护] bool QTabBar::event(QEvent *event)

重实现:QWidget::event(QEvent *event).

[覆盖虚拟保护] void QTabBar::hideEvent(QHideEvent *)

重实现:QWidget::hideEvent(QHideEvent *event).

[虚拟保护] void QTabBar::initStyleOption(QStyleOptionTab *option, int tabIndex) const

使用位于 tabIndex 的标签的值初始化 option。此方法对于子类在需要 QStyleOptionTab 时非常有用,但不想填写所有信息。

参见QStyleOption::initFrom() 和 QTabWidget::initStyleOption

int QTabBar::insertTab(int index, const QString &text)

在位置 index 插入一个带有文本 text 的新标签。如果 index 超出范围,则将新标签添加到末尾。返回新标签的索引。

int QTabBar::insertTab(int index, const QIcon &icon, const QString &text)

这是一个重载函数。

在位置 index 插入一个带有图标 icon 和文本 text 的新标签。如果 index 超出范围,则将新标签添加到末尾。返回新标签的索引。

如果在此函数调用之前 QTabBar 为空,则插入的标签变为当前标签。

在小于或等于当前索引的索引处插入新标签将增加当前索引,但保持当前标签。

bool QTabBar::isTabEnabled(int index) const

如果位置 index 的标签被启用,则返回 true;否则返回 false

bool QTabBar::isTabVisible(int index) const

如果位置 index 的标签可见,则返回 true;否则返回 false。

[override virtual protected] void QTabBar::keyPressEvent(QKeyEvent *event)

重新实现了: QWidget::keyPressEvent(QKeyEvent *event).

[override virtual] QSize QTabBar::minimumSizeHint() const

重新实现了属性访问函数:QWidget::minimumSizeHint.

[virtual protected] QSize QTabBar::minimumTabSizeHint(int index) const

返回位置 index 的标签的最小大小提示。

[override virtual protected] void QTabBar::mouseDoubleClickEvent(QMouseEvent *event)

重新实现了: QWidget::mouseDoubleClickEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mouseMoveEvent(QMouseEvent *event)

重新实现了: QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mousePressEvent(QMouseEvent *event)

重新实现了: QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mouseReleaseEvent(QMouseEvent *event)

重新实现了: QWidget::mouseReleaseEvent(QMouseEvent *event).

void QTabBar::moveTab(int from, int to)

将索引位置 from 的项目移动到索引位置 to

另请参阅tabMoved() 和 tabLayoutChange().

[override virtual protected] void QTabBar::paintEvent(QPaintEvent *)

重新实现了: QWidget::paintEvent(QPaintEvent *event).

void QTabBar::removeTab(int index)

移除位置 index 的标签。

另请参阅SelectionBehavior.

[重写虚受保护] void QTabBar::resizeEvent(QResizeEvent *)

重新实现: QWidget::resizeEvent(QResizeEvent *event).

void QTabBar::setAccessibleTabName(int index, const QString &name)

设置位于 index 位置的选项卡的访问名称为 name

另请参阅accessibleTabName().

void QTabBar::setTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget)

设置 widgetindex 位置的选项卡上。根据 position 将将其放置在左侧或右侧。

position 中的之前设置的任何部件隐藏。将 widget 设置为 nullptr 将隐藏当前 position 位置的部件。

选项卡栏将获得该部件的所有权,因此在此设置的任何部件都将在它销毁时由选项卡栏删除,除非在设置其他部件(或 nullptr)之后单独将部件重新父化。

另请参阅tabButton() 和 tabsClosable().

void QTabBar::setTabData(int index, const QVariant &data)

将位于 index 位置的分区的数据设置为 data

另请参阅tabData().

void QTabBar::setTabEnabled(int index, bool enabled)

如果 enabledtrue,则位于 index 位置的选项卡将启用;否则,位于 index 位置的项将禁用。

另请参阅isTabEnabled().

void QTabBar::setTabIcon(int index, const QIcon &icon)

index 位置的分区的图标设置为 icon

另请参阅tabIcon().

void QTabBar::setTabText(int index, const QString &text)

将位于 index 位置的分区的文本设置为 text

另请参阅tabText().

void QTabBar::setTabTextColor(int index, const QColor &color)

将带有给定 index 的选项卡中文本的颜色设置为指定的 color

如果指定了无效的颜色,则选项卡将使用 QTabBar 的前景角色。

另请参阅tabTextColor().

void QTabBar::setTabToolTip(int index, const QString &tip)

设置位置为 index 的选项卡的工具提示为 tip

另请参阅 tabToolTip()。

void QTabBar::setTabVisible(int index, bool visible)

如果 visible 为 true,则使位置为 index 的选项卡可见,否则将其隐藏。

另请参阅 isTabVisible()。

void QTabBar::setTabWhatsThis(int index, const QString &text)

将位置为 index 的选项卡的“这是什么”帮助文本设置为 text

另请参阅 tabWhatsThis()。

[覆盖虚保护] void QTabBar::showEvent(QShowEvent *)

重实现: QWidget::showEvent(QShowEvent *event)。

[覆盖虚] QSize QTabBar::sizeHint() const

重实现了获取属性的帮助函数: QWidget::sizeHint

int QTabBar::tabAt(const QPoint &position) const

返回覆盖 position 的选项卡的索引,如果没有任何选项卡覆盖 position,则返回 -1;

[信号] void QTabBar::tabBarClicked(int index)

当用户点击索引为 index 的选项卡时,会发出此信号。

index 是被点击的选项卡的索引,如果没有选项卡位于光标下,则返回 -1。

[信号] void QTabBar::tabBarDoubleClicked(int index)

当用户在 index 选项卡上双击时,会发出此信号。

index 指的是被点击的选项卡,如果没有选项卡位于光标下,则返回 -1。

QWidget *QTabBar::tabButton(int index, QTabBar::ButtonPosition position) const

返回设置索引为 indexposition 的选项卡的控件,如果没有设置,则返回 nullptr

另请参阅 setTabButton()。

[信号] void QTabBar::tabCloseRequested(int index)

当点击选项卡上的关闭按钮时,会发出此信号。 index 是应删除的索引。

另请参阅 setTabsClosable()。

QVariant QTabBar::tabData(int index) const

返回位置 index 上的标签数据,如果 index 超出范围,则返回空变体。

另请参阅 setTabData

QIcon QTabBar::tabIcon(int index) const

返回位置 index 上标签的图标,如果 index 超出范围,则返回空图标。

另请参阅 setTabIcon

[虚受保护] void QTabBar::tabInserted(int index)

当在位置 index 添加或插入新标签后,调用此虚函数。

另请参阅 tabRemoved

[虚受保护] void QTabBar::tabLayoutChange()

每当标签布局发生变化时,会调用此虚函数。

另请参阅 tabRect

[信号] void QTabBar::tabMoved(int from, int to)

当设备索引为 from 的标签移至索引为 to 的位置时,会发出此信号。

注意:QTabWidget 在发出来自其标签栏的此信号时会自动移动页面。

另请参阅 moveTab

QRect QTabBar::tabRect(int index) const

返回位置 index 上标签的视觉矩形,如果 index 隐藏或超出范围,则返回空矩形。

[虚受保护] void QTabBar::tabRemoved(int index)

从位置 index 移除标签后,调用此虚函数。

另请参阅 tabInserted

[虚受保护] QSize QTabBar::tabSizeHint(int index) const

返回位置 index 上标签的大小提示。

QString QTabBar::tabText(int index) const

返回位置 index 上标签的文本,如果 index 超出范围,则返回空字符串。

另请参阅 setTabText

QColor QTabBar::tabTextColor(int index) const

返回给定 index 的标签的文本颜色,如果 index 超出范围,则返回无效颜色。

另请参阅 setTabTextColor

QString QTabBar::tabToolTip(int index) const

返回位置 index 的标签工具提示,如果 index 超出范围则返回空字符串。

另请参阅 setTabToolTip

QString QTabBar::tabWhatsThis(int index) const

返回位置 index 的标签“这是什么”帮助文本,如果 index 超出范围则返回空字符串。

另请参阅 setTabWhatsThis

[重写虚受保护] void QTabBar::timerEvent(QTimerEvent *event)

重实现: QObject::timerEvent(QTimerEvent *event)。

[重写虚受保护] void QTabBar::wheelEvent(QWheelEvent *event)

重实现: QWidget::wheelEvent(QWheelEvent *event)。

© 2024 The Qt Company Ltd. 此处包含的文档贡献者保留各自的权利。此处提供的文档根据自由软件基金会发布的 GNU 自由文档许可协议第1.3版 的条款获得许可。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。