QTabWidget Class

QTabWidgetクラスはタブウィジェットのスタックを提供します。詳細...

Header: #include <QTabWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QWidget

パブリックタイプ

enum TabPosition { North, South, West, East }
enum TabShape { Rounded, Triangular }

プロパティ

パブリック関数

QTabWidget(QWidget *parent = nullptr)
virtual ~QTabWidget()
int addTab(QWidget *page, const QString &label)
int addTab(QWidget *page, const QIcon &icon, const QString &label)
void clear()
QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
int count() const
int currentIndex() const
QWidget *currentWidget() const
bool documentMode() const
Qt::TextElideMode elideMode() const
QSize iconSize() const
int indexOf(const QWidget *w) const
int insertTab(int index, QWidget *page, const QString &label)
int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)
bool isMovable() const
bool isTabEnabled(int index) const
bool isTabVisible(int index) const
void removeTab(int index)
void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
void setDocumentMode(bool set)
void setElideMode(Qt::TextElideMode mode)
void setIconSize(const QSize &size)
void setMovable(bool movable)
void setTabBarAutoHide(bool enabled)
void setTabEnabled(int index, bool enable)
void setTabIcon(int index, const QIcon &icon)
void setTabPosition(QTabWidget::TabPosition position)
void setTabShape(QTabWidget::TabShape s)
void setTabText(int index, const QString &label)
void setTabToolTip(int index, const QString &tip)
void setTabVisible(int index, bool visible)
void setTabWhatsThis(int index, const QString &text)
void setTabsClosable(bool closeable)
void setUsesScrollButtons(bool useButtons)
QTabBar *tabBar() const
bool tabBarAutoHide() const
QIcon tabIcon(int index) const
QTabWidget::TabPosition tabPosition() const
QTabWidget::TabShape tabShape() const
QString tabText(int index) const
QString tabToolTip(int index) const
QString tabWhatsThis(int index) const
bool tabsClosable() const
bool usesScrollButtons() const
QWidget *widget(int index) const

再実装パブリック関数

virtual bool hasHeightForWidth() const override
virtual int heightForWidth(int width) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

パブリックスロット

void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)

シグナル

void currentChanged(int index)
void tabBarClicked(int index)
void tabBarDoubleClicked(int index)
void tabCloseRequested(int index)

保護された関数

virtual void initStyleOption(QStyleOptionTabWidgetFrame *option) const
void setTabBar(QTabBar *tb)
virtual void tabInserted(int index)
virtual void tabRemoved(int index)

再実装された保護された関数

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *ev) override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *e) override
virtual void showEvent(QShowEvent *) override

詳細説明

タブウィジェットは、タブバー(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 ()を参照)。タブが有効な場合、タブのテキストは通常どおり描画され、ユーザーはそのタブを選択できます。無効になっている場合、タブは別の方法で描画され、ユーザーはそのタブを選択できません。タブが無効化されていても、すべてのタブが無効化されている場合など、ページが表示されることがあることに注意してください。

タブ・ウィジェットは、複雑なダイアログを分割するのにとても良い方法です。別の方法として、QToolBarQListWidget のように、ページ間を移動する手段を提供するQStackedWidget を使用することもできます。

QTabWidgetのほとんどの機能は、QTabBar (上部にあり、タブを提供する)とQStackedWidget (大部分の領域で、個々のページを整理する)によって提供されます。

QTabBar,QStackedWidget,QToolBox,タブダイアログの例も参照してください

メンバ型ドキュメント

enum QTabWidget::TabPosition

この列挙型は、QTabWidget がタブ行を描画する場所を定義します:

定数説明
QTabWidget::North0タブはページの上に描画される。
QTabWidget::South1タブはページの下に描画される。
QTabWidget::West2タブはページの左側に描画されます。
QTabWidget::East3タブはページの右側に描画される。

enum QTabWidget::TabShape

この列挙型は、タブの形状を定義します:

定数説明
QTabWidget::Rounded0タブは丸みを帯びて描画されます。これはデフォルトの形状です。
QTabWidget::Triangular1タブは三角形で描画されます。

プロパティ説明

[read-only] count : const int

このプロパティは、タブバーのタブの数を保持します。

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

アクセス関数

int count() const

currentIndex : int

このプロパティは現在のタブページのインデックス位置を保持します。

現在のウィジェットがない場合、現在のインデックスは-1です。

初期状態では、ウィジェットにタブが存在しないため、このプロパティには-1の値が格納されます。

アクセス関数

int currentIndex() const
void setCurrentIndex(int index)

通知シグナル

void currentChanged(int index)

documentMode : bool

このプロパティは、タブ・ウィジェットがドキュメント・ページに適したモードでレンダリングされているかどうかを保持する。これは macOS のドキュメントモードと同じです。

このプロパティが設定されている場合、タブウィジェットのフレームはレンダリングされない。このモードは、ページがタブウィジェットの領域の大部分を覆うようなドキュメントタイプのページを表示するのに便利です。

アクセス関数:

bool documentMode() const
void setDocumentMode(bool set)

elideMode,QTabBar::documentMode,QTabBar::usesScrollButtons,QStyle::SH_TabBar_PreferNoArrowsも参照してください

elideMode : Qt::TextElideMode

タブバーのテキストを隠す方法

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

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

アクセス関数:

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

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

iconSize : QSize

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

デフォルト値はスタイル依存です。これはアイコンの最大サイズです。アイコンのサイズが小さい場合、アイコンは拡大されません。

アクセス関数:

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

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

movable : bool

このプロパティは、ユーザーがタブバー領域内でタブを移動できるかどうかを保持します。

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

アクセス関数です:

bool isMovable() const
void setMovable(bool movable)

tabBarAutoHide : bool

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

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

アクセス関数:

bool tabBarAutoHide() const
void setTabBarAutoHide(bool enabled)

QWidget::visibleも参照

tabPosition : TabPosition

このプロパティは、タブウィジェットのタブの位置を保持します。

このプロパティに取り得る値は、TabPosition enumで記述される。

デフォルトでは、このプロパティはNorth に設定されています。

アクセス関数:

QTabWidget::TabPosition tabPosition() const
void setTabPosition(QTabWidget::TabPosition position)

TabPositionも参照

tabShape : TabShape

このプロパティは、このタブウィジェットのタブの形状を保持します。

このプロパティに設定可能な値は、QTabWidget::Rounded (デフォルト)またはQTabWidget::Triangular です。

アクセス関数:

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape s)

TabShapeも参照

tabsClosable : bool

このプロパティは、各タブに閉じるボタンを自動的に追加するかどうかを保持します。

アクセス関数:

bool tabsClosable() const
void setTabsClosable(bool closeable)

QTabBar::tabsClosable()も参照

usesScrollButtons : bool

このプロパティは、タブバーに多くのタブがある場合に、タブのスクロールにボタンを使用するかどうかを保持します。

タブバーのサイズに対してタブの数が多すぎる場合、タブバーはそのサイズを拡大するか、タブをスクロールできるボタンを追加するかを選択できます。

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

アクセス関数:

bool usesScrollButtons() const
void setUsesScrollButtons(bool useButtons)

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

メンバ関数ドキュメント

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

parent を持つタブ付きウィジェットを構築します。

[virtual noexcept] QTabWidget::~QTabWidget()

タブウィジェットを破棄します。

int QTabWidget::addTab(QWidget *page, const QString &label)

与えられたpagelabel を持つタブをタブウィジェットに追加し、タブバー内のタブのインデックスを返します。page の所有権はQTabWidget に渡されます.

タブのlabel にアンパサンドが含まれる場合、アンパサンドに続く文字がタブのショートカットとして使用されます。例えば、ラベルが "Bro&wse" の場合、Alt+W がこのタブにフォーカスを移動するショートカットになります。

注意: show() の後で addTab() を呼び出すと、レイアウト・システムがウィジェット階層の変更に合わせようとし、ちらつきが発生することがあります。これを防ぐには、変更の前にQWidget::updatesEnabled プロパティを false に設定します。変更が完了したら、このプロパティを true に設定して、ウィジェットが再びペイント・イベントを受け取るようにすることを忘れないでください。

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

int QTabWidget::addTab(QWidget *page, const QIcon &icon, const QString &label)

これはオーバーロードされた関数です。

指定されたpage,icon,label のタブをタブ・ウィジェットに追加し、タブ・バーのタブのインデックスを返します。page の所有権はQTabWidget に渡されます。

この関数は addTab() と同じですが、icon が追加されています。

[override virtual protected] void QTabWidget::changeEvent(QEvent *ev)

再インプリメントされます:QWidget::changeEvent(QEvent *event)。

void QTabWidget::clear()

すべてのページを削除しますが、削除はしません。この関数を呼び出すことは、タブ・ウィジェットが空になるまでremoveTab() を呼び出すことと同じです。

QWidget *QTabWidget::cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const

タブ・ウィジェットのcorner またはnullptr に表示されているウィジェットを返します。

setCornerWidget()も参照のこと

[signal] void QTabWidget::currentChanged(int index)

このシグナルは、現在のページ・インデックスが変更されるたびに発行される。パラメータは、新しい現在のページindex の位置、または新しいものがない場合は -1 です (例えば、QTabWidget にウィジェットがない場合など)。

注: プロパティcurrentIndex に対するノーティファイア・シグナル。

currentWidget() およびcurrentIndexも参照してください

QWidget *QTabWidget::currentWidget() const

タブダイアログが現在表示しているページへのポインタを返します。タブダイアログは、この値が決して0にならないように最善を尽くします(しかし、十分に努力すれば、0になることもあります)。

currentIndex() およびsetCurrentWidget()も参照して ください。

[override virtual protected] bool QTabWidget::event(QEvent *ev)

再実装:QWidget::event(QEvent *event)。

[override virtual] bool QTabWidget::hasHeightForWidth() const

再リンプルメント: (QEvent *event):QWidget::hasHeightForWidth() const.

[override virtual] int QTabWidget::heightForWidth(int width) const

再リプルメント:QWidget::heightForWidth(int w) const.

int QTabWidget::indexOf(const QWidget *w) const

ウィジェットw が占めるページのインデックス位置を返すか,ウィジェットが見つからない場合は -1 を返します.

[virtual protected] void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const

このQTabWidget の値でoption を初期化する。このメソッドは、サブクラスがQStyleOptionTabWidgetFrame を必要とするが、すべての情報を自分で入力したくない場合に便利である。

QStyleOption::initFrom() およびQTabBar::initStyleOption()も参照してください

int QTabWidget::insertTab(int index, QWidget *page, const QString &label)

指定されたindex のタブ・ウィジェットに、指定されたlabelpage のタブを挿入し、挿入されたタブのタブ・バーのインデックスを返します。page の所有権はQTabWidget に渡される。

ラベルはタブに表示され、タブ・ウィジェットの構成によって外観が異なる場合がある。

タブのlabel にアンパサンドが含まれている場合、アンパサンドに続く文字がタブのショートカットとして使用される。例えば、ラベルが「Bro&wse」の場合、Alt+W がこのタブにフォーカスを移すショートカットになる。

index が範囲外の場合、タブは単に追加される。そうでなければ、指定された位置に挿入される。

この関数が呼ばれる前にQTabWidget が空だった場合、新しいページが現在のページになる。現在のインデックス以下のインデックスに新しいタブを挿入すると、現在のインデックスがインクリメントされますが、現在のページは維持されます。

注意: show() の後で insertTab() を呼び出すと、レイアウト・システムがウィジェット階層の変更に合わせようとするため、ちらつきが発生する可能性があります。これを防ぐには、変更の前にQWidget::updatesEnabled プロパティを false に設定します。変更が完了したら、このプロパティを true に設定し、ウィジェットが再びペイント・イベントを受け取るようにすることを忘れないでください。

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

int QTabWidget::insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)

これはオーバーロードされた関数です。

指定されたlabelpageicon のタブを、指定されたindex のタブ・ウィジェットに挿入し、挿入されたタブのタブ・バーのインデックスを返します。page の所有権はQTabWidget に渡される。

この関数は、insertTab() と同じであるが、icon が追加されている。

bool QTabWidget::isTabEnabled(int index) const

位置index のページが有効な場合はtrue を返し、そうでない場合はfalse を返す。

setTabEnabled() およびQWidget::isEnabled()も参照

bool QTabWidget::isTabVisible(int index) const

位置index のページが表示されている場合は true を返し、そうでない場合は false を返します。

setTabVisible()も参照

[override virtual protected] void QTabWidget::keyPressEvent(QKeyEvent *e)

再インプリメント:QWidget::keyPressEvent(QKeyEvent *event)。

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

プロパティQWidget::minimumSizeHint に対するアクセス関数を再実装しています。

タブウィジェットの適切な最小サイズを返します。

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

再実装:QWidget::paintEvent(QPaintEvent *event)。

paintevent に応答してタブウィジェットのタブバーをペイントします。

void QTabWidget::removeTab(int index)

位置index にあるタブをウィジェットのスタックから削除します。ページウィジェット自体は削除されません。

addTab() およびinsertTab()も参照してください

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

再インプリメント:QWidget::resizeEvent(QResizeEvent *event)。

void QTabWidget::setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)

指定されたwidget をタブウィジェットの指定されたcorner に表示するように設定します。ウィジェットのジオメトリは、ウィジェットのsizeHint() とstyle() に基づいて決定されます。

corner の水平要素のみが使用されます。

nullptr を渡すと、コーナーにウィジェットは表示されません。

以前に設定されたコーナーウィジェットは非表示になります。

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

注意: コーナー・ウィジェットは、NorthSouth のタブ位置用に設計されています。他の方向では正しく動作しないことが知られています。

cornerWidget() およびsetTabPosition()も参照してください

[slot] void QTabWidget::setCurrentWidget(QWidget *widget)

widget を現在のウィジェットにします。使用されるwidget は、このタブ・ウィジェットのページでなければなりません。

addTab()、setCurrentIndex()、currentWidget()も参照

[protected] void QTabWidget::setTabBar(QTabBar *tb)

ダイアログのQTabBar 見出しをタブバーtb で置き換えます。これは、タブが追加される前に呼び出されなければならないことに注意してください。

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

void QTabWidget::setTabEnabled(int index, bool enable)

enable が真の場合、位置index のページが有効になり、そうでない場合、位置index のページが無効になります。ページのタブは適切に再描画されます。

QTabWidget は、別のフラグを保持するのではなく、内部的に () を使用します。QWidget::setEnabled

無効化されたタブ/ページでも表示される可能性があることに注意。ページがすでに表示されている場合、QTabWidget はそれを隠さない。すべてのページが無効になっている場合、QTabWidget はそのうちの1つを表示する。

isTabEnabled() およびQWidget::setEnabled()も参照の こと。

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

index の位置にあるタブのicon を設定する。

tabIcon() も参照

void QTabWidget::setTabText(int index, const QString &label)

位置index のタブのページの新しいlabel を定義します。

指定したテキストにアンパサンド文字 ('&') が含まれている場合、そのショートカットが自動的に作成されます。'&'に続く文字がショートカットキーとして使われます。以前のショートカットは上書きされ、テキストでショートカットが定義されていない場合はクリアされます。詳細はQShortcut のドキュメントを参照のこと(実際のアンパサンドを表示するには '&&' を使用する)。

tabText()も参照して ください。

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

位置index にあるページのタブツールチップをtip に設定します。

tabToolTip() も参照

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

visible が true の場合、位置index のページが表示され、そうでない場合、位置index のページが非表示になります。ページのタブは適切に再描画されます。

isTabVisible() も参照

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

位置index のページの What's This ヘルプ・テキストをtext に設定します。

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

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

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

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

プロパティのアクセス関数を再実装します:QWidget::sizeHint.

QTabBar *QTabWidget::tabBar() const

現在のQTabBar を返します。

setTabBar()も参照のこと

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

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

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

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

このシグナルは、ユーザがindex.

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

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

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

setTabsClosable()も参照

QIcon QTabWidget::tabIcon(int index) const

位置index にあるページのタブのアイコンを返す。

setTabIcon() も参照

[virtual protected] void QTabWidget::tabInserted(int index)

この仮想ハンドラは、index の位置に新しいタブが追加または挿入された後に呼び出されます。

tabRemoved() も参照

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

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

tabInserted() も参照

QString QTabWidget::tabText(int index) const

位置index にあるページのタブのラベルテキストを返します。

setTabText() も参照

QString QTabWidget::tabToolTip(int index) const

位置index にあるページのタブのツールチップを返すか、 ツールチップが設定されていない場合は空の文字列を返します。

setTabToolTip() も参照して ください。

QString QTabWidget::tabWhatsThis(int index) const

位置index にあるページの What's This ヘルプ・テキスト、またはヘルプ・テキストが設定されていない場合は空文字列を返します。

setTabWhatsThis() も参照

QWidget *QTabWidget::widget(int index) const

インデックス位置index またはindex が範囲外の場合はnullptr にあるタブページを返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。