QTabBar Class

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,setTabData() で変更できます。各タブは、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はそのタブに切り替えるためのショートカットキーになります。

以下の仮想関数は、ルック&フィールをカスタマイズしたり、各タブに追加データを保存したりするために再実装する必要があるかもしれません:

  • tabSizeHint() タブのサイズを計算する。
  • tabInserted() 新しいタブが追加されたことを通知する。
  • tabRemoved() はタブが削除されたことを通知する。
  • tabLayoutChange() タブが再配置されたことを通知する。
  • paintEvent() はすべてのタブをペイントする。

サブクラスでは、1つのタブのビジュアルジオメトリを返すtabRect() 関数も必要かもしれません。

Screenshot of a Fusion style tab barFusion ウィジェットスタイルのタブバー。
Screenshot of a truncated Fusion tab barFusion ウィジェットスタイルで表示される切り詰められたタブバー。

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例えば、エクセルのスプレッドシートで使われているような三角形のタブ。
QTabBar::TriangularWest6ページの左側にある三角形のタブ。
QTabBar::TriangularEast7ページの右側にある三角形のタブ。

プロパティ・ドキュメンテーション

autoHide : bool

trueを指定すると、タブバーが2つ以下の場合、タブバーは自動的に非表示になる。

デフォルトでは、このプロパティはfalseです。

アクセス関数:

bool autoHide() const
void setAutoHide(bool hide)

QWidget::visibleも参照してください

changeCurrentOnDrag : bool

trueの場合、タブバーの上をドラッグすると、現在のタブが自動的に変更されます。

注意: この機能を有効にするには、acceptDropsプロパティもtrueに設定する必要があります。

デフォルトでは、このプロパティは false です。

アクセス関数

bool changeCurrentOnDrag() const
void setChangeCurrentOnDrag(bool change)

[read-only] 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のTerminal.appのタブと同じように表示されます。

関数にアクセスします:

bool documentMode() const
void setDocumentMode(bool set)

QTabWidget::documentModeも参照してください

drawBase : bool

タブバーがそのベースを描画するかどうかを定義します。

trueの場合、QTabBar はスタイルの重なりに対してベースを描画します。そうでない場合は、タブのみが描画されます。

アクセス関数:

bool drawBase() const
void setDrawBase(bool drawTheBase)

QStyle::pixelMetric()、QStyle::PM_TabBarBaseOverlapQStyleOptionTabBarBaseも参照のこと

elideMode : Qt::TextElideMode

タブバーのテキストを非表示にする方法

このプロパティは、指定されたタブバーのサイズに表示するのに十分なスペースがない場合に、アイテムがどのようにエイドされるかを制御します。

デフォルトでは、値はスタイルに依存します。

アクセス関数:

Qt::TextElideMode elideMode() const
void setElideMode(Qt::TextElideMode mode)

QTabWidget::elideModeusesScrollButtonsQStyle::SH_TabBar_ElideModeも参照してください

expanding : bool

QTabBar 、空いたスペースを使うようにタブを展開します。

デフォルトはtrueです。

アクセス関数:

bool expanding() const
void setExpanding(bool enabled)

QTabWidget::documentModeも参照の こと。

iconSize : QSize

このプロパティは、タブバーのアイコンのサイズを保持します。

デフォルト値はスタイルに依存します。iconSize は最大サイズです。それより小さいアイコンは拡大されません。

アクセス関数:

QSize iconSize() const
void setIconSize(const QSize &size)

QTabWidget::iconSizeも参照してください

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)

elideModeQTabWidget::usesScrollButtonsQStyle::SH_TabBar_PreferNoArrowsも参照してください

メンバー関数ドキュメント

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

与えられたparent で新しいタブバーを作成します。

[virtual noexcept] QTabBar::~QTabBar()

タブバーを破壊する。

QString QTabBar::accessibleTabName(int index) const

位置index にあるタブの accessibleName、またはindex が範囲外の場合は空文字列を返します。

setAccessibleTabName()も参照してください

int QTabBar::addTab(const QString &text)

テキストtext で新しいタブを追加します。新しいタブのインデックスを返します。

int QTabBar::addTab(const QIcon &icon, const QString &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

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 にあるタブが表示されていれば真を返し、そうでなければ偽を返します。

[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も参照してください

[override virtual protected] void QTabBar::resizeEvent(QResizeEvent *)

再実装:QWidget::resizeEvent(QResizeEvent *event)。

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

位置index にあるタブの accessibleName をname に設定します。

accessibleTabName()も参照のこと

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

index タブにwidget を設定します。ウィジェットは、position に応じて左側または右側に配置されます。

position に以前に設定されたウィジェットは非表示になります。widgetnullptr に設定すると、現在のウィジェットはposition で非表示になります。

タブ・バーがウィジェットの所有権を持つため、他のウィジェット(またはnullptr )を設定した後に別途ウィジェットを再保護しない限り、ここで設定されたすべてのウィジェットは、タブ・バーが破棄されたときに削除されます。

tabButton() とtabsClosable()も参照してください

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

位置index にあるタブのデータをdata に設定する。

tabData()も参照のこと

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

もしenabled が真なら、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 が真の場合、位置index のタブを可視にし、そうでない場合は非表示にする。

isTabVisible()も参照

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

位置index にあるタブの What's This ヘルプ・テキストをtext に設定する。

tabWhatsThis()も参照してください

[override virtual protected] void QTabBar::showEvent(QShowEvent *)

再実装:QWidget::showEvent(QShowEvent *event)。

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

QWidget::sizeHint

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

position をカバーするタブのインデックス、またはposition をカバーするタブがない場合は -1 を返す;

[signal] void QTabBar::tabBarClicked(int index)

このシグナルは、ユーザがindex のタブをクリックしたときに発せられる。

index はクリックされたタブのインデックスで、カーソル下にタブがない場合は-1。

[signal] void QTabBar::tabBarDoubleClicked(int index)

このシグナルは、ユーザーがindex のタブをダブルクリックしたときに発せられる。

index はクリックされたタブを指し、カーソル下にタブがない場合は-1となる。

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

タブindexposition またはnullptr が設定されていない場合、設定されたウィジェットを返します。

setTabButton()も参照してください

[signal] void QTabBar::tabCloseRequested(int index)

このシグナルは、タブのクローズボタンがクリックされたときに発せられる。index は削除されるべきインデックスである。

setTabsClosable()も参照のこと

QVariant QTabBar::tabData(int index) const

位置index のタブのデータ、またはindex が範囲外の場合は null のバリアントを返します。

setTabData()も参照

QIcon QTabBar::tabIcon(int index) const

位置index にあるタブのアイコン、またはindex が範囲外の場合は null アイコンを返します。

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 に移動したときに発せられる。

note:QTabWidget は、タブ・バーからこのシグナルが発せられると、自動的にページを移動する。

moveTab()も参照のこと

QRect QTabBar::tabRect(int index) const

位置index にあるタブの視覚的な矩形を返します。index が非表示であるか、範囲外の場合は null の矩形を返します。

[virtual protected] void QTabBar::tabRemoved(int index)

この仮想ハンドラは、index の位置からタブが取り除かれた後に呼び出される。

tabInserted()も参照のこと

[virtual protected] 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 にあるタブのWhat's Thisヘルプテキスト、または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)。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.