QTabBar 类
QTabBar 类提供了一个标签栏,例如用于标签对话框。 更多...
头文件 | #include <QTabBar> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QWidget |
公共类型
枚举 | ButtonPosition { LeftSide, RightSide } |
枚举 | SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab } |
枚举 | Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, TriangularNorth, …, TriangularEast } |
属性
|
|
公共函数
QTabBar(QWidget *parent = nullptr) | |
virtual | ~QTabBar() |
QString | accessibleTabName(int index) const |
int | addTab(const QString &text) |
int | addTab(const QIcon &icon, const QString &text) |
bool | autoHide() const |
bool | changeCurrentOnDrag() const |
int | count() const |
int | currentIndex() const |
bool | documentMode() const |
bool | drawBase() const |
Qt::TextElideMode | elideMode() const |
bool | expanding() const |
QSize | iconSize() const |
int | insertTab(int index, const QString &text) |
int | insertTab(int index, const QIcon &icon, const QString &text) |
bool | isMovable() const |
bool | isTabEnabled(int index) const |
bool | isTabVisible(int index) const |
void | moveTab(int from, int to) |
void | removeTab(int index) |
QTabBar::SelectionBehavior | selectionBehaviorOnRemove() const |
void | setAccessibleTabName(int index, const QString &name) |
void | setAutoHide(bool hide) |
void | setChangeCurrentOnDrag(bool change) |
void | setDocumentMode(bool set) |
void | setDrawBase(bool drawTheBase) |
void | setElideMode(Qt::TextElideMode mode) |
void | setExpanding(bool enabled) |
void | setIconSize(const QSize &size) |
void | setMovable(bool movable) |
void | setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior) |
void | setShape(QTabBar::Shape shape) |
void | setTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget) |
void | setTabData(int index, const QVariant &data) |
void | setTabEnabled(int index, bool enabled) |
void | setTabIcon(int index, const QIcon &icon) |
void | setTabText(int index, const QString &text) |
void | setTabTextColor(int index, const QColor &color) |
void | setTabToolTip(int index, const QString &tip) |
void | setTabVisible(int index, bool visible) |
void | setTabWhatsThis(int index, const QString &text) |
void | setTabsClosable(bool closable) |
void | setUsesScrollButtons(bool useButtons) |
QTabBar::Shape | shape() const |
int | tabAt(const QPoint &position) const |
QWidget * | tabButton(int index, QTabBar::ButtonPosition position) const |
QVariant | tabData(int index) const |
QIcon | tabIcon(int index) const |
QRect | tabRect(int index) const |
QString | tabText(int index) const |
QColor | tabTextColor(int index) const |
QString | tabToolTip(int index) const |
QString | tabWhatsThis(int index) const |
bool | tabsClosable() const |
bool | usesScrollButtons() const |
重实现的公共函数
virtual QSize | minimumSizeHint() const override |
virtual QSize | sizeHint() const override |
公共槽
void | setCurrentIndex(int index) |
信号
void | currentChanged(int index) |
void | tabBarClicked(int index) |
void | tabBarDoubleClicked(int index) |
void | tabCloseRequested(int index) |
void | tabMoved(int from, int to) |
保护函数
virtual void | initStyleOption(QStyleOptionTab *option, int tabIndex) const |
virtual QSize | minimumTabSizeHint(int index) const |
virtual void | tabInserted(int index) |
virtual void | tabLayoutChange() |
virtual void | tabRemoved(int index) |
virtual QSize | tabSizeHint(int index) const |
重新实现的保护函数
virtual void | changeEvent(QEvent *event) override |
virtual bool | event(QEvent *event) override |
virtual void | hideEvent(QHideEvent *) override |
virtual void | keyPressEvent(QKeyEvent *event) override |
virtual void | mouseDoubleClickEvent(QMouseEvent *event) override |
virtual void | mouseMoveEvent(QMouseEvent *event) override |
virtual void | mousePressEvent(QMouseEvent *event) override |
virtual void | mouseReleaseEvent(QMouseEvent *event) override |
virtual void | paintEvent(QPaintEvent *) override |
virtual void | resizeEvent(QResizeEvent *) override |
virtual void | showEvent(QShowEvent *) override |
virtual void | timerEvent(QTimerEvent *event) override |
virtual void | wheelEvent(QWheelEvent *event) override |
详细描述
QTabBar 使用简单;使用预定义的形状之一绘制标签页,在标签页被选中时发出信号。它可以被继承以定制外观和感觉。Qt 也提供了一个现成的QTabWidget。
每个标签都有tabText(),可选的tabIcon(),可选的tabToolTip(),可选的tabWhatsThis() 和可选的tabData()。可以使用 setTabText(),setTabIcon,setTabToolTip,setTabWhatsThis 和setTabData() 改变标签属性。可以使用setTabEnabled() 单独启用或禁用每个标签。
每个标签可以以不同的颜色显示文本。可以使用 tabTextColor() 函数找到当前标签的文本颜色。使用setTabTextColor() 为特定标签设置文本颜色。
使用 addTab() 添加标签,或使用 insertTab() 在特定位置插入标签。总标签数由count给出。可以使用 removeTab() 从标签栏中删除标签。通过结合使用 removeTab() 和 insertTab(),可以将标签移动到不同的位置。
属性shape定义了标签的表现形式。形状的选择完全是个人喜好问题,尽管标签对话框(如首选项等)通常使用RoundedNorth。除对话框外的窗口中的标签控制通常几乎总是使用RoundedSouth或TriangularSouth。在所有页面本质上相似的许多电子表格和其他标签控制中,使用TriangularSouth,而RoundedSouth通常在使用页面不同时(例如多页工具调板)使用。QTabBar的默认值为RoundedNorth。
QTabBar API中最重要的一部分是currentChanged()信号。每当当前标签改变时(即使在启动时,当前标签从'none'变为其他标签时)都会发出此信号。还有一个槽setCurrentIndex(),可以用来程序化地选择一个标签。函数currentIndex()返回当前标签的索引,count保存标签数。
QTabBar按照QAbstractButton的方式创建自动访问键;例如,如果标签的标签是"&Graphics",则Alt+G成为切换到该标签的快捷键。
以下虚拟函数可能需要重新实现,以便调整每个标签的外观和感觉或存储额外的数据。
- tabSizeHint()计算标签的大小。
- tabInserted()通知已添加新标签。
- tabRemoved()通知移除标签。
- tabLayoutChange()通知标签已重新布局。
- paintEvent()绘制所有标签。
对于子类,您可能还需要tabRect()函数,该函数返回单个标签的可视几何形状。
在Fusion widget style中显示的标签栏。 | |
在Fusion widget style中显示的截断标签栏。 |
另请参阅QTabWidget。
成员类型文档
enum QTabBar::ButtonPosition
此枚举类型列出了标签上的小部件位置。
常量 | 值 | 描述 |
---|---|---|
QTabBar::LeftSide | 0 | 标签的左侧。 |
QTabBar::RightSide | 1 | 标签的右侧。 |
enum QTabBar::SelectionBehavior
此枚举类型列出了当移除标签并且被移除的标签也是当前标签时,QTabBar的行为。
常量 | 值 | 描述 |
---|---|---|
QTabBar::SelectLeftTab | 0 | 选择被移除的标签左侧的标签。 |
QTabBar::SelectRightTab | 1 | 选择被移除的标签右侧的标签。 |
QTabBar::SelectPreviousTab | 2 | 选择上一个选中的标签。 |
enum QTabBar::Shape
此枚举类型列出了QTabBar支持的内置形状。将它们视为提示,因为某些样式可能无法渲染某些形状。但是,应尊重位置。
常量 | 值 | 描述 |
---|---|---|
QTabBar::RoundedNorth | 0 | 位于页面上方的一般圆角外观。 |
QTabBar::RoundedSouth | 1 | 位于页面下方的一般圆角外观。 |
QTabBar::RoundedWest | 2 | 位于页面左侧的一般圆角外观。 |
QTabBar::RoundedEast | 3 | 位于页面右侧的一般圆角外观。 |
QTabBar::TriangularNorth | 4 | 位于页面上的三角形标签。 |
QTabBar::TriangularSouth | 5 | 类似于在 Excel 工作表中使用的三角形标签,例如 |
QTabBar::TriangularWest | 6 | 页面左侧的三角形标签。 |
QTabBar::TriangularEast | 7 | 页面右侧的三角形标签。 |
属性文档
autoHide : bool
如果为真,则当标签栏包含少于 2 个标签时,将自动隐藏标签栏。
默认情况下,此属性为 false。
访问函数
bool | autoHide() const |
void | setAutoHide(bool hide) |
另请参阅QWidget::visible。
changeCurrentOnDrag : bool
如果为真,则在拖动到标签栏时,将自动更改当前标签。
注意:您还应将 acceptDrops 属性设置为 true,以使此功能生效。
默认情况下,此属性为 false。
访问函数
bool | changeCurrentOnDrag() const |
void | setChangeCurrentOnDrag(bool change) |
[只读]
count : const int
此属性包含标签栏中的标签数量
访问函数
int | count() const |
currentIndex : int
此属性包含标签栏可见标签的索引
如果不存在当前标签,则当前索引为 -1。
访问函数
int | currentIndex() const |
void | setCurrentIndex(int index) |
通知信号
void | currentChanged(int index) |
documentMode : bool
此属性包含是否以适合主窗口的模式绘制标签栏
此属性用作对样式的提示,以以与通常在标签小部件中不同的方式绘制标签。在 macOS 上,它将与 Safari 或 Sierra's Terminal.app 中的标签类似。
访问函数
bool | documentMode() const |
void | setDocumentMode(bool set) |
drawBase : bool
定义标签栏是否绘制其底部。
如果为真,则 QTabBar 将相对于样式重叠绘制底部。否则,仅绘制标签。
访问函数
bool | drawBase() const |
void | setDrawBase(bool drawTheBase) |
另请参阅QStyle::pixelMetric、QStyle::PM_TabBarBaseOverlap 和 QStyleOptionTabBarBase。
elideMode : Qt::TextElideMode
如何在标签栏中裁剪文本
此属性控制在给定标签栏大小时,当没有足够的空间显示项目时,如何省略项目。
默认情况下,此值是样式相关的。
访问函数
Qt::TextElideMode | elideMode() const |
void | setElideMode(Qt::TextElideMode mode) |
另请参阅QTabWidget::elideMode、usesScrollButtons 和 QStyle::SH_TabBar_ElideMode。
expanding : bool
如果 expanding 为 true,则 QTabBar 会扩展标签以使用空白空间。
默认情况下,此值为 true。
访问函数
bool | expanding() const |
void | setExpanding(bool enabled) |
iconSize : QSize
此属性存储标签栏图标的大小
默认值依样式而定。 iconSize
代表最大尺寸;对于更小的图标,不会进行缩放。
访问函数
QSize | iconSize() const |
void | setIconSize(const QSize &size) |
movable : bool
此属性存储用户是否可以移动标签栏内的标签
默认情况下,此属性为 false
;
访问函数
bool | isMovable() const |
void | setMovable(bool movable) |
selectionBehaviorOnRemove : SelectionBehavior
当调用 removeTab 并要删除当前标签时,设置哪个标签为当前标签。
默认值为 SelectRightTab。
访问函数
QTabBar::SelectionBehavior | selectionBehaviorOnRemove() const |
void | setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior) |
见亦removeTab。
shape : Shape
此属性存储标签栏内标签的形状
此属性的值有 Shape 枚举描述。
访问函数
QTabBar::Shape | shape() const |
void | setShape(QTabBar::Shape shape) |
tabsClosable : bool
此属性存储是否应该在每个标签上放置关闭按钮
当 tabsClosable 设置为 true 时,根据样式,关闭按钮将显示在每个标签的左侧或右侧。当按钮被点击时,会发出 tabCloseRequested 信号。
默认值为 false。
访问函数
bool | tabsClosable() const |
void | setTabsClosable(bool closable) |
见亦setTabButton() 和 tabRemoved。
usesScrollButtons : bool
此属性存储当标签栏有太多标签时,是否使用按钮来回滚标签
当标签栏的标签数量超过其尺寸时,标签栏可以选择扩展其尺寸或添加按钮,允许你滚动标签。
默认情况下,此值是样式相关的。
访问函数
bool | usesScrollButtons() const |
void | setUsesScrollButtons(bool useButtons) |
见亦elideMode,QTabWidget::usesScrollButtons 和 QStyle::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)
设置 widget 在 index 位置的选项卡上。根据 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)
如果 enabled 为 true,则位于 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
返回设置索引为 index 和 position 的选项卡的控件,如果没有设置,则返回 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. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。