QStackedWidget Class

QStackedWidgetクラスは、一度に1つのウィジェットだけが表示されるウィジェットのスタックを提供します。詳細...

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

プロパティ

パブリック関数

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)

与えられたwidgetQStackedWidget に追加し、インデックス位置を返します。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 のインデックス、または与えられたwidgetQStackedWidget の子でない場合は -1 を返します。

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

int QStackedWidget::insertWidget(int index, QWidget *widget)

与えられたwidgetQStackedWidget の与えられたindex に挿入する。widget の所有権はQStackedWidget に渡される。index が範囲外の場合、widget が追加される(この場合、返されるのはwidget の実際のインデックスである)。

この関数が呼ばれる前にQStackedWidget が空だった場合、指定されたwidget が現在のウィジェットになる。

現在のインデックス以下のインデックスに新しいウィジェットを挿入すると、現在のインデックスがインクリメントされますが、現在のウィジェットは保持されます。

addWidget()、removeWidget()、setCurrentWidget()も参照のこと

void QStackedWidget::removeWidget(QWidget *widget)

QStackedWidget からwidget を削除します。つまり、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()も参照して ください。

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