QTabBar 类提供选项卡栏,如:为用于选项卡式对话框。 更多...
头: | #include <QTabBar> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QWidget |
enum | ButtonPosition { LeftSide, RightSide } |
enum | SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab } |
enum | 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 易于使用。它绘制选项卡是使用某一预定义 shapes ,并发射信号,当选项卡被选中时。它可以被子类化以订制外观和感觉。Qt 还提供现成 QTabWidget .
每个选项卡有 tabText (),可选 tabIcon (),可选 tabToolTip (),可选 tabWhatsThis () 和可选 tabData ()。可以改变选项卡属性采用 setTabText (), setTabIcon (), setTabToolTip (), setTabWhatsThis and setTabData ()。每个选项卡可以被单独启用或禁用采用 setTabEnabled ().
每个选项卡可以按截然不同颜色显示文本。可以找到当前选项卡的文本颜色采用 tabTextColor () 函数。设置用于特定选项卡的文本颜色采用 setTabTextColor ().
添加选项卡使用 addTab (),或插入在特定位置使用 insertTab ()。选项卡总数的给出通过 count ()。可以从选项卡栏移除选项卡采用 removeTab ()。组合 removeTab () 和 insertTab () 允许将选项卡移至不同位置。
The shape 特性定义选项卡的外观。形状的选择是品味问题,尽管选项卡对话框 (对于首选项和类似的) 始终不变使用 RoundedNorth 。窗口 (除对话框外) 中的选项卡控件几乎总是使用 RoundedSouth or TriangularSouth 。许多电子表格和其它所有页面基本类似的选项卡控件使用 TriangularSouth ,而 RoundedSouth 主要在页面不同时使用 (如:多页面工具调色板)。默认在 QTabBar 是 RoundedNorth .
最重要部分的 QTabBar API 是 currentChanged () 信号。这被发射每当当前选项卡改变时 (即使在启动时,当当前选项卡从 none 改变时)。还有槽, setCurrentIndex () 可以用于以编程方式选择选项卡。函数 currentIndex () 返回当前选项卡的索引, count 保存选项卡的数量。
QTabBar 创建自动助记键按方式 QAbstractButton ;如:若选项卡的标签为 &Graphics,Alt+G 将变为切换到该选项卡的快捷键。
可能需要重实现以下虚函数,为每个选项卡订制外观和感觉或存储额外数据:
对于子类,可能还需要 tabRect () 函数返回单个选项卡的视觉几何体。
Screenshot of a Fusion style tab bar | 选项卡栏展示在 Fusion 小部件风格 . |
Screenshot of a truncated Fusion tab bar | 以 Fusion 小部件样式展示截取选项卡栏。 |
另请参阅 QTabWidget .
此枚举类型列表 Widget 在选项卡上的位置。
常量 | 值 | 描述 |
---|---|---|
QTabBar::LeftSide
|
0
|
选项卡的左侧。 |
QTabBar::RightSide
|
1
|
选项卡的右侧。 |
此枚举类型列表行为在 QTabBar 当选项卡被移除且被移除选项卡也是当前选项卡时。
常量 | 值 | 描述 |
---|---|---|
QTabBar::SelectLeftTab
|
0
|
选择被移除选项卡左侧的选项卡。 |
QTabBar::SelectRightTab
|
1
|
选择被移除选项卡右侧的选项卡。 |
QTabBar::SelectPreviousTab
|
2
|
选择先前选中的选项卡。 |
此枚举类型列出的内置形状支持通过 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
|
在页面右侧的三角形选项卡。 |
若为 true,自动隐藏选项卡栏,当包含少于 2 个选项卡时。
默认情况下,此特性为 false。
访问函数:
bool | autoHide () const |
void | setAutoHide (bool hide ) |
另请参阅 QWidget::visible .
若为 true,当前选项卡会自动改变,当在选项卡栏拖拽时。
注意: 还应该将 acceptDrops 特性设为 true 以使此特征工作。
默认情况下,此特性为 false。
访问函数:
bool | changeCurrentOnDrag () const |
void | setChangeCurrentOnDrag (bool change ) |
[read-only]
count
: const
int
此特性保持选项卡栏的选项卡数
访问函数:
int | count () const |
此特性保持选项卡栏的可见选项卡索引
当前索引为 -1,若没有当前选项卡。
访问函数:
int | currentIndex () const |
void | setCurrentIndex (int index ) |
通知程序信号:
void | currentChanged (int index ) |
此特性保持选项卡栏是否以适于主窗口的模式进行渲染。
此特性通常用作它们在选项卡 Widget 中按不同外观方式绘制选项卡的样式提示。在 macOS,外观将类似 Safari 或 Sierra 的 Terminal.app 选项卡。
访问函数:
bool | documentMode () const |
void | setDocumentMode (bool set ) |
另请参阅 QTabWidget::documentMode .
定义选项卡栏是否应该绘制其基。
若 true 则 QTabBar 绘制样式重叠相关的基。否则,仅绘制选项卡。
访问函数:
bool | drawBase () const |
void | setDrawBase (bool drawTheBase ) |
另请参阅 QStyle::pixelMetric (), QStyle::PM_TabBarBaseOverlap ,和 QStyleOptionTabBarBase .
如何省略标签栏文本
此特性控制如何省略项,当没有足够空间展示它们 (对于给定选项卡栏尺寸) 时。
默认值从属样式。
访问函数:
Qt::TextElideMode | elideMode () const |
void | setElideMode (Qt::TextElideMode mode ) |
另请参阅 QTabWidget::elideMode , usesScrollButtons ,和 QStyle::SH_TabBar_ElideMode .
当展开为 true QTabBar 将展开选项卡以使用空白空间。
默认情况下,值为 true。
访问函数:
bool | expanding () const |
void | setExpanding (bool enabled ) |
另请参阅 QTabWidget::documentMode .
此特性保持选项卡栏的图标尺寸
默认值从属样式。
iconSize
是最大尺寸;不会按比例放大较小图标。
访问函数:
QSize | iconSize () const |
void | setIconSize (const QSize & size ) |
另请参阅 QTabWidget::iconSize .
此特性保持用户是否可以在选项卡栏区域内,移动选项卡。
默认情况下,此特性为
false
;
访问函数:
bool | isMovable () const |
void | setMovable (bool movable ) |
什么选项卡应被设为当前,在 removeTab 被调用,若被移除选项卡也是当前选项卡。
默认情况下,值为 SelectRightTab .
访问函数:
QTabBar::SelectionBehavior | selectionBehaviorOnRemove () const |
void | setSelectionBehaviorOnRemove (QTabBar::SelectionBehavior behavior ) |
另请参阅 removeTab ().
此特性保持选项卡栏的选项卡形状
此特性的可能值,由形状枚举描述。
访问函数:
QTabBar::Shape | shape () const |
void | setShape (QTabBar::Shape shape ) |
此特性保持选项卡栏是否应该在每个选项卡上放置关闭按钮
当 tabsClosable 被设为 true 时,关闭按钮将出现在选项卡左侧或右侧 (从属样式)。当按钮被点击时,选项卡信号 tabCloseRequested 会被发射。
默认情况下,值为 false。
访问函数:
bool | tabsClosable () const |
void | setTabsClosable (bool closable ) |
另请参阅 setTabButton () 和 tabRemoved ().
此特性保持选项卡栏是否应使用卷动按钮,当包含多个选项卡时。
当选项卡栏选项卡太多时 (对于其大小),选项卡栏可以选择展开其大小,或添加按钮以允许卷动选项卡。
默认值从属样式。
访问函数:
bool | usesScrollButtons () const |
void | setUsesScrollButtons (bool useButtons ) |
另请参阅 elideMode , QTabWidget::usesScrollButtons ,和 QStyle::SH_TabBar_PreferNoArrows .
[explicit]
QTabBar::
QTabBar
(
QWidget
*
parent
= nullptr)
创建新的选项卡栏采用给定 parent .
[虚拟]
QTabBar::
~QTabBar
()
销毁选项卡栏。
返回选项卡的 accessibleName 在位置 index ,或空字符串若 index 超出范围。
另请参阅 setAccessibleTabName ().
添加新选项卡采用文本 text 。返回新选项卡的索引。
这是重载函数。
添加新选项卡采用图标 icon 和文本 text 。返回新选项卡的索引。
[override virtual protected]
void
QTabBar::
changeEvent
(
QEvent
*
event
)
重实现: QWidget::changeEvent (QEvent *event).
[signal]
void
QTabBar::
currentChanged
(
int
index
)
此信号被发射当选项卡栏的当前选项卡改变时。新的当前具有给定 index ,或 -1 若没有新的 (例如:若没有选项卡在 QTabBar )
注意: 通知程序信号对于特性 currentIndex .
[override virtual protected]
bool
QTabBar::
event
(
QEvent
*
event
)
重实现: QWidget::event (QEvent *event).
[override virtual protected]
void
QTabBar::
hideEvent
(
QHideEvent
*)
重实现: QWidget::hideEvent (QHideEvent *event).
[virtual protected]
void
QTabBar::
initStyleOption
(
QStyleOptionTab
*
option
,
int
tabIndex
) const
初始化 option 采用值从选项卡在 tabIndex 。此方法对子类是有用的,当需要 QStyleOptionTab ,但不希望自己填充所有信息。
另请参阅 QStyleOption::initFrom () 和 QTabWidget::initStyleOption ().
插入新选项卡采用文本 text 在位置 index 。若 index 超出范围,追加新选项卡。返回新选项卡的索引。
这是重载函数。
插入新选项卡采用图标 icon 和文本 text 在位置 index 。若 index 超出范围,追加新选项卡。返回新选项卡的索引。
若 QTabBar 为空在调用此函数之前,插入选项卡变为当前选项卡。
在 <= 当前索引的索引处插入新选项卡将递增当前索引,但保持当前选项卡。
返回
true
若选项卡在位置
index
被启用;否则返回
false
.
返回 true 若选项卡在位置 index 可见;否则返回 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).
移动项按索引位置 from 到索引位置 to .
另请参阅 tabMoved () 和 tabLayoutChange ().
[override virtual protected]
void
QTabBar::
paintEvent
(
QPaintEvent
*)
重实现: QWidget::paintEvent (QPaintEvent *event).
移除选项卡,在位置 index .
另请参阅 SelectionBehavior .
[override virtual protected]
void
QTabBar::
resizeEvent
(
QResizeEvent
*)
重实现: QWidget::resizeEvent (QResizeEvent *event).
设置选项卡的 accessibleName 在位置 index to name .
另请参阅 accessibleTabName ().
设置 widget 在选项卡 index 。Widget 是放在左侧还是右侧从属 position .
先前设置的任何 Widget 在
position
被隐藏。设置
widget
to
nullptr
将隐藏当前 Widget 在
position
.
选项卡栏将拥有小部件的所有权,因此,选项卡栏会删除此处设置的所有小部件当销毁时,除非单独重设 Widget 父级在设置一些其它小部件后 (或
nullptr
).
另请参阅 tabButton () 和 tabsClosable ().
设置选项卡数据在位置 index to data .
另请参阅 tabData ().
若 enabled 为 true 则选项卡在位置 index 被启用;否则项在位置 index 被禁用。
另请参阅 isTabEnabled ().
设置选项卡的图标,在位置 index to icon .
另请参阅 tabIcon ().
设置选项卡的文本,在位置 index to text .
另请参阅 tabText ().
设置选项卡文本颜色采用给定 index 到指定 color .
如果指定的是无效颜色,选项卡将使用 QTabBar 前景角色代替。
另请参阅 tabTextColor ().
设置选项卡的工具提示,在位置 index to tip .
另请参阅 tabToolTip ().
若 visible 为 true,使选项卡在位置 index 可见,否则使之隐藏。
另请参阅 isTabVisible ().
设置选项卡的 What's This 帮助文本,在位置 index to text .
另请参阅 tabWhatsThis ().
[override virtual protected]
void
QTabBar::
showEvent
(
QShowEvent
*)
重实现: QWidget::showEvent (QShowEvent *event).
[override virtual]
QSize
QTabBar::
sizeHint
() const
重实现访问函数为特性: QWidget::sizeHint .
返回选项卡索引,覆盖 position 或 -1 若没有选项卡覆盖 position ;
[signal]
void
QTabBar::
tabBarClicked
(
int
index
)
此信号会被发射,当用户点击选项卡在 index .
index 是点击选项卡索引,或 -1 若光标下没有选项卡。
[signal]
void
QTabBar::
tabBarDoubleClicked
(
int
index
)
此信号被发射当用户双击选项卡在 index .
index 引用选项卡点击,或 -1 若光标下没有选项卡。
返回 Widget 设置选项卡
index
and
position
or
nullptr
若未设置。
另请参阅 setTabButton ().
[signal]
void
QTabBar::
tabCloseRequested
(
int
index
)
此信号被发射当点击选项卡关闭按钮时。 index 是应被移除的索引。
另请参阅 setTabsClosable ().
返回选项卡数据在位置 index ,或 null 变体若 index 超出范围。
另请参阅 setTabData ().
返回选项卡的图标,在位置 index ,或 null 图标若 index 超出范围。
另请参阅 setTabIcon ().
[virtual protected]
void
QTabBar::
tabInserted
(
int
index
)
调用此虚拟处理程序,在添加或插入新选项卡后于位置 index .
另请参阅 tabRemoved ().
[virtual protected]
void
QTabBar::
tabLayoutChange
()
调用此虚拟处理程序,每当选项卡布局改变时。
另请参阅 tabRect ().
[signal]
void
QTabBar::
tabMoved
(
int
from
,
int
to
)
此信号被发射当选项卡已移动选项卡在索引位置 from 到索引位置 to .
注意: QTabWidget 会自动移动页面,当此信号从其选项卡栏被发射时。
另请参阅 moveTab ().
返回选项卡的视觉矩形,在位置 index ,或 null 矩形若 index 被隐藏或超出范围。
[virtual protected]
void
QTabBar::
tabRemoved
(
int
index
)
调用此虚拟处理程序在移除选项卡后从位置 index .
另请参阅 tabInserted ().
[virtual protected]
QSize
QTabBar::
tabSizeHint
(
int
index
) const
返回选项卡的大小提示按位置 index .
返回选项卡的文本,在位置 index ,或空字符串若 index 超出范围。
另请参阅 setTabText ().
返回选项卡的文本颜色,采用给定 index ,或无效颜色若 index 超出范围。
另请参阅 setTabTextColor ().
返回选项卡的工具提示,在位置 index ,或空字符串若 index 超出范围。
另请参阅 setTabToolTip ().
返回选项卡的 What's This 帮助文本,在位置 index ,或空字符串若 index 超出范围。
另请参阅 setTabWhatsThis ().
[override virtual protected]
void
QTabBar::
timerEvent
(
QTimerEvent
*
event
)
重实现: QObject::timerEvent (QTimerEvent *event).
[override virtual protected]
void
QTabBar::
wheelEvent
(
QWheelEvent
*
event
)
重实现: QWidget::wheelEvent (QWheelEvent *event).