QStackedWidget Class
QStackedWidgetクラスは、一度に1つのウィジェットだけが表示されるウィジェットのスタックを提供します。詳細...
ヘッダ | #include <QStackedWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QFrame |
プロパティ
- count : const int
- currentIndex : int
パブリック機能
QStackedWidget(QWidget *parent = nullptr) | |
virtual | ~QStackedWidget() |
int | addWidget(QWidget *widget) |
int | count() const |
int | currentIndex() const |
QWidget * | currentWidget() const |
int | indexOf(const QWidget *widget) const |
int | insertWidget(int index, QWidget *widget) |
void | removeWidget(QWidget *widget) |
QWidget * | widget(int index) const |
パブリックスロット
void | setCurrentIndex(int index) |
void | setCurrentWidget(QWidget *widget) |
シグナル
void | currentChanged(int index) |
void | widgetRemoved(int index) |
再実装された保護された関数
virtual bool | event(QEvent *e) override |
詳細説明
QStackedWidgetは、QTabWidget によって提供されるものと同様のユーザーインターフェイスを作成するために使用することができます。これは、QStackedLayout クラスの上に構築された便利なレイアウト・ウィジェットです。
QStackedLayout のように、QStackedWidget は、多数の子ウィジェット("ページ")を構築し、投入することができます:
QWidget *firstPageWidget = new QWidget; QWidget *secondPageWidget = new QWidget; QWidget *thirdPageWidget = new QWidget; QStackedWidget *stackedWidget = new QStackedWidget; stackedWidget->addWidget(firstPageWidget); stackedWidget->addWidget(secondPageWidget); stackedWidget->addWidget(thirdPageWidget); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(stackedWidget); setLayout(layout);
QStackedWidgetは、ユーザがページを切り替える本質的な手段を提供しません。これは通常、QStackedWidgetのページのタイトルを保存するQComboBox またはQListWidget を通して行われます。例えば
QComboBox *pageComboBox = new QComboBox; pageComboBox->addItem(tr("Page 1")); pageComboBox->addItem(tr("Page 2")); pageComboBox->addItem(tr("Page 3")); connect(pageComboBox, &QComboBox::activated, stackedWidget, &QStackedWidget::setCurrentIndex);
スタックド・ウィジェットに入力するとき、ウィジェットは内部リストに追加されます。indexOf() 関数は、そのリスト内のウィジェットのインデックスを返します。ウィジェットは、addWidget() 関数を使用してリストの最後に追加するか、insertWidget() 関数を使用して指定されたインデックスに挿入します。removeWidget() 関数は、スタックされたウィジェットからウィジェットを削除する。スタック・ウィジェットに含まれるウィジェットの数は、count() 関数を使用して取得できる。
widget() 関数は、指定されたインデックス位置にあるウィジェットを返す。画面に表示されるウィジェットのインデックス は、currentIndex ()で与えられ、setCurrentIndex ()で変更できる。同様に、現在表示されているウィジェットは、currentWidget() 関数で取得でき、setCurrentWidget() 関数で変更できる。
スタック・ウィジェットの現在のウィジェットが変更されたり、スタック・ウィジェットからウィジェットが削除されたりすると、それぞれcurrentChanged() とwidgetRemoved() シグナルが発行される。
QStackedLayout およびQTabWidgetも参照してください 。
プロパティ・ドキュメント
[read-only]
count : const int
このプロパティは、このスタック・ウィジェットが含むウィジェットの数を保持する。
デフォルトでは、このプロパティには0が格納されます。
アクセス関数:
int | count() const |
currentIndex() およびwidget()も参照してください 。
currentIndex : int
このプロパティは、表示されているウィジェットのインデックス位置を保持する。
現在のウィジェットがない場合、現在のインデックスは-1です。
デフォルトでは、スタックは初期状態では空であるため、このプロパティには -1 の値が格納されます。
アクセス関数
int | currentIndex() const |
void | setCurrentIndex(int index) |
Notifier シグナル:
void | currentChanged(int index) |
currentWidget() およびindexOf()も参照のこと 。
メンバ関数ドキュメント
[explicit]
QStackedWidget::QStackedWidget(QWidget *parent = nullptr)
与えられたparent で QStackedWidget を構築します。
addWidget() およびinsertWidget()も参照してください 。
[virtual noexcept]
QStackedWidget::~QStackedWidget()
スタックされたウィジェットを破壊し、割り当てられたリソースを解放する。
int QStackedWidget::addWidget(QWidget *widget)
与えられたwidget をQStackedWidget に追加し、インデックス位置を返す。widget の所有権はQStackedWidget に渡される。
この関数が呼ばれる前にQStackedWidget が空の場合、widget が現在のウィジェットになる。
insertWidget()、removeWidget()、setCurrentWidget()も参照のこと 。
[signal]
void QStackedWidget::currentChanged(int index)
このシグナルは、現在のウィジェットが変更されるたびに発行される。
パラメータには、新しい現在のウィジェットのindex が格納され、新しいウィジェットがない場合は -1 が格納されます(例えば、QStackedWidget にウィジェットがない場合など)。
注: プロパティcurrentIndex に対するノーティファイア・シグナル。
currentWidget() およびsetCurrentWidget()も参照してください 。
QWidget *QStackedWidget::currentWidget() const
現在のウィジェットを返し、子ウィジェットがない場合はnullptr
を返します。
currentIndex() およびsetCurrentWidget()も参照してください 。
[override virtual protected]
bool QStackedWidget::event(QEvent *e)
再インプリメント:QFrame::event(QEvent *e).
int QStackedWidget::indexOf(const QWidget *widget) const
与えられたwidget のインデックスを返すか、与えられたwidget がQStackedWidget の子でない場合は -1 を返す。
currentIndex() およびwidget()も参照 。
int QStackedWidget::insertWidget(int index, QWidget *widget)
QStackedWidget の指定されたindex に、指定されたwidget を挿入する。widget の所有権はQStackedWidget に渡される。index が範囲外の場合、widget が追加される(この場合、返されるのはwidget の実際のインデックスである)。
この関数が呼ばれる前にQStackedWidget が空だった場合、指定されたwidget が現在のウィジェットになる。
現在のインデックス以下のインデックスに新しいウィジェットを挿入すると、現在のインデックスがインクリメントされますが、現在のウィジェットは保持されます。
addWidget()、removeWidget()、setCurrentWidget()も参照のこと 。
void QStackedWidget::removeWidget(QWidget *widget)
widget QStackedWidgetすなわち、widget は削除されるのではなく、単にスタック・レイアウトから削除され、非表示になります。
注意: widget の親オブジェクトと親ウィジェットはQStackedWidget のままです。削除されたwidget を再利用したい場合は、再度親にすることをお勧めします。
addWidget()、insertWidget()、currentWidget()も参照してください 。
[slot]
void QStackedWidget::setCurrentWidget(QWidget *widget)
現在のウィジェットを指定されたwidget に設定する。新しいカレント・ウィジェットは、すでにこのスタック・ウィジェットに含まれている必要があります。
currentWidget() およびsetCurrentIndex()も参照 。
QWidget *QStackedWidget::widget(int index) const
指定されたindex にあるウィジェットを返し、そのようなウィジェットがない場合はnullptr
を返します。
currentWidget() およびindexOf()も参照 。
[signal]
void QStackedWidget::widgetRemoved(int index)
このシグナルは、ウィジェットが削除されるたびに発行されます。ウィジェットのindex がパラメータとして渡されます。
removeWidget()も参照してください 。
© 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.