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の通常の使用方法は以下の通りです:
- 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
タブ・ウィジェットの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 のタブ・ウィジェットに、指定されたlabel とpage のタブを挿入し、挿入されたタブのタブ・バーのインデックスを返します。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 のページが表示されている場合は 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
)を設定した後に別途ウィジェットを再保護しない限り、タブウィジェットが破棄されるときに削除されます。
注意: コーナー・ウィジェットは、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
プロパティのアクセス関数を再実装します: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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。