QTabWidget Class
QTabWidgetクラスはタブウィジェットのスタックを提供します。詳細...
ヘッダー | #include <QTabWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | 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の通常の使用方法は以下の通りです:
- QTabWidgetを作成する。
- タブダイアログの各ページのためにQWidget 、親ウィジェットは指定しないでください。
- 子ウィジェットをページ・ウィジェットに挿入し、レイアウトを使って通常通りに配置します。
- addTab() またはinsertTab() を呼び出して、ページ・ウィジェットをタブ・ウィジェットに入れ、各タブに適切なラベルとオプションのキーボード・ショートカットを付けます。
タブの位置はtabPosition で定義され、その形状はtabShape で定義される。
シグナルcurrentChanged() は、ユーザーがページを選択したときに発せられる。
現在のページ・インデックスはcurrentIndex() で、現在のページ・ウィジェットはcurrentWidget() で取得できます。指定されたインデックスを持つページ・ウィジェットへのポインタを取得するにはwidget() を使用し、ウィジェットのインデックス位置を調べるにはindexOf() を使用します。特定のページを表示するには、setCurrentWidget() またはsetCurrentIndex() を使用する。
setTabText ()またはsetTabIcon ()を使用して、タブのテキストとアイコンを変更できます。タブとその関連ページは、removeTab ()で削除できます。
各タブは、任意の時点で有効または無効になります(setTabEnabled ()を参照)。タブが有効になっている場合、タブのテキストは正常に描画され、ユーザーはそのタブを選択できます。無効になっている場合、タブは別の方法で描画され、ユーザーはそのタブを選択できません。タブが無効化されていても、すべてのタブが無効化されている場合など、ページが表示されることがあることに注意してください。
タブ・ウィジェットは、複雑なダイアログを分割するのにとても良い方法です。別の方法として、QToolBar やQListWidget のように、ページ間を移動する手段を提供するQStackedWidget を使用することもできます。
QTabWidgetのほとんどの機能は、QTabBar (上部にあり、タブを提供する)とQStackedWidget (大部分の領域で、個々のページを整理する)によって提供されます。
QTabBar,QStackedWidget,QToolBox,タブダイアログの例も参照してください 。
メンバー型ドキュメント
enum QTabWidget::TabPosition
この列挙型はQTabWidget がタブ行をどこに描くかを定義する:
定数 | 値 | 説明 |
---|---|---|
QTabWidget::North | 0 | タブはページの上に描画される。 |
QTabWidget::South | 1 | タブはページの下に描画される。 |
QTabWidget::West | 2 | タブはページの左側に描画されます。 |
QTabWidget::East | 3 | タブはページの右側に描画されます。 |
enum QTabWidget::TabShape
この列挙型はタブの形状を定義する:
定数 | 値 | 説明 |
---|---|---|
QTabWidget::Rounded | 0 | タブは丸みを帯びて描画されます。これはデフォルトの形状です。 |
QTabWidget::Triangular | 1 | タブは三角形で描画されます。 |
プロパティの説明
[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::elideMode 、usesScrollButtons 、QStyle::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) |
elideMode 、QTabBar::usesScrollButtons 、QStyle::SH_TabBar_PreferNoArrowsも参照してください 。
メンバー関数ドキュメント
[explicit]
QTabWidget::QTabWidget(QWidget *parent = nullptr)
parent を親とするタブウィジェットを構築します。
[virtual noexcept]
QTabWidget::~QTabWidget()
タブウィジェットを破壊する。
int QTabWidget::addTab(QWidget *page, const QString &label)
与えられたpage とlabel を持つタブをタブウィジェットに追加し、タブバー内のタブのインデックスを返す。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
タブ・ウィジェットまたはnullptr
のcorner に表示されているウィジェットを返します。
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
再実装: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)
指定されたlabel とpage を持つタブを、指定されたindex のタブウィジェットに挿入し、挿入されたタブのタブバーのインデックスを返す。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)
これはオーバーロードされた関数です。
指定されたlabel 、page 、icon のタブを、指定されたindex のタブウィジェットに挿入し、挿入されたタブのタブバーのインデックスを返す。page の所有権はQTabWidget に渡される。
この関数は、insertTab() と同じですが、icon が追加されています。
bool QTabWidget::isTabEnabled(int index) const
位置index のページが有効な場合はtrue
を返し、そうでない場合はfalse
を返す。
setTabEnabled() およびQWidget::isEnabled()も参照のこと 。
bool QTabWidget::isTabVisible(int index) const
位置index にあるページが表示されていれば真を返し、そうでなければ偽を返す。
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
)を設定した後に別途ウィジェットを再保護しない限り、タブウィジェットが破棄されるときに削除されます。
注意: コーナー・ウィジェットは、North とSouth のタブ位置用に設計されています。他の方向では正しく動作しないことが知られています。
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
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
のタブページを返す。
© 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.