QStackedLayout Class

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

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

パブリック・タイプ

enum StackingMode { StackOne, StackAll }

プロパティ

パブリック関数

QStackedLayout()
QStackedLayout(QLayout *parentLayout)
QStackedLayout(QWidget *parent)
virtual ~QStackedLayout()
int addWidget(QWidget *widget)
int currentIndex() const
QWidget *currentWidget() const
int insertWidget(int index, QWidget *widget)
void setStackingMode(QStackedLayout::StackingMode stackingMode)
QStackedLayout::StackingMode stackingMode() const
QWidget *widget(int index) const

再実装パブリック関数

virtual void addItem(QLayoutItem *item) override
virtual int count() const override
virtual bool hasHeightForWidth() const override
virtual int heightForWidth(int width) const override
virtual QLayoutItem *itemAt(int index) const override
virtual QSize minimumSize() const override
virtual void setGeometry(const QRect &rect) override
virtual QSize sizeHint() const override
virtual QLayoutItem *takeAt(int index) override

パブリックスロット

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

シグナル

void currentChanged(int index)
void widgetRemoved(int index)

詳細説明

QStackedLayoutは、QTabWidget によって提供されるものと同様のユーザー・インターフェースを作成するために使用することができます。QStackedLayoutの上に構築された便利なQStackedWidget クラスもあります。

QStackedLayoutには、いくつかの子ウィジェット("ページ")を配置することができます。例えば

    QWidget *firstPageWidget = new QWidget;
    QWidget *secondPageWidget = new QWidget;
    QWidget *thirdPageWidget = new QWidget;

    QStackedLayout *stackedLayout = new QStackedLayout;
    stackedLayout->addWidget(firstPageWidget);
    stackedLayout->addWidget(secondPageWidget);
    stackedLayout->addWidget(thirdPageWidget);

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addLayout(stackedLayout);
    setLayout(mainLayout);

QStackedLayoutは、ユーザーがページを切り替えるための本質的な手段を提供しません。これは通常、QComboBox 、またはQStackedLayoutのページのタイトルを保存するQListWidget 。例えば

    QComboBox *pageComboBox = new QComboBox;
    pageComboBox->addItem(tr("Page 1"));
    pageComboBox->addItem(tr("Page 2"));
    pageComboBox->addItem(tr("Page 3"));
    connect(pageComboBox, &QComboBox::activated,
            stackedLayout, &QStackedLayout::setCurrentIndex);

レイアウトの入力時、ウィジェットは内部リストに追加されます。indexOf() 関数は、そのリスト内のウィジェットのインデックスを返します。ウィジェットは、addWidget() 関数を使用してリストの最後に追加するか、insertWidget() 関数を使用して指定されたインデックスに挿入します。removeWidget() 関数は、指定されたインデックスのウィジェットをレイアウトから削除します。レイアウトに含まれるウィジェットの数は、count() 関数を使用して取得できます。

widget() 関数は、指定されたインデックスの位置にあるウィジェットを返す。画面に表示されるウィジェットのインデックスはcurrentIndex() で与えられ、setCurrentIndex() で変更できる。同様に、現在表示されているウィジェットは、currentWidget() 関数で取得でき、setCurrentWidget() 関数で変更できる。

レイアウト内の現在のウィジェットが変更されたり、レイアウトからウィジェットが削除されたりすると、それぞれcurrentChanged() とwidgetRemoved() シグナルが出力されます。

QStackedWidget およびQTabWidgetも参照してください

メンバ型ドキュメント

enum QStackedLayout::StackingMode

この列挙型は、レイアウトがその子ウィジェットの可視性をどのように扱うかを指定します。

定数説明
QStackedLayout::StackOne0現在のウィジェットだけが表示されます。これはデフォルトです。
QStackedLayout::StackAll1すべてのウィジェットが表示されます。現在のウィジェットは単に表示されます。

プロパティの説明

[read-only] count : const int

このプロパティは、レイアウトに含まれるウィジェットの数を保持します。

アクセス関数:

virtual int count() const override

currentIndex() およびwidget()も参照

currentIndex : int

このプロパティは、表示されているウィジェットのインデックス位置を保持します。

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

アクセス関数

int currentIndex() const
void setCurrentIndex(int index)

通知シグナル:

void currentChanged(int index)

currentWidget() およびindexOf()も参照

stackingMode : StackingMode

は、子ウィジェットの可視性の処理方法を決定します。

デフォルト値はStackOne です。このプロパティをStackAll に設定すると、グラフィカル・エディタなど、他のウィジェットの上に追加の描画を行うオーバーレイ・ウィジェットのレイアウトを利用できます。

アクセス関数

QStackedLayout::StackingMode stackingMode() const
void setStackingMode(QStackedLayout::StackingMode stackingMode)

メンバ関数ドキュメント

QStackedLayout::QStackedLayout()

親を持たない QStackedLayout を構築します。

この QStackedLayout を有効にするには、後でウィジェットにインストールする必要があります。

addWidget() およびinsertWidget()も参照してください

[explicit] QStackedLayout::QStackedLayout(QLayout *parentLayout)

新しい QStackedLayout を構築し、指定されたparentLayout に挿入します。

[explicit] QStackedLayout::QStackedLayout(QWidget *parent)

与えられたparent で新しい QStackedLayout を構築します。

このレイアウトは、parent ウィジェットにインストールされ、その子のジオメトリを管理します。

[virtual noexcept] QStackedLayout::~QStackedLayout()

このQStackedLayout を破棄します。レイアウトのウィジェットは破棄されないことに注意してください。

[override virtual] void QStackedLayout::addItem(QLayoutItem *item)

再実装します:QLayout::addItem(QLayoutItem *item)。

int QStackedLayout::addWidget(QWidget *widget)

与えられたwidget をこのレイアウトの最後に追加し、widget のインデックス位置を返します。

この関数が呼ばれる前にQStackedLayout が空だった場合、与えられたwidget が現在のウィジェットになります。

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

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

このシグナルは、レイアウト内のカレント・ウィジェットが変更されるたびに発行されます。index には新しいカレント・ウィジェットのインデックスを指定し、新しいウィジェットがない場合は -1 を指定します(例えば、QStackedLayout にウィジェットがない場合など)。

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

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

QWidget *QStackedLayout::currentWidget() const

現在のウィジェットを返し、このレイアウトにウィジェットがない場合はnullptr を返します。

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

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

再インプリメントです:QLayoutItem::hasHeightForWidth() const.

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

再インプリメント:QLayoutItem::heightForWidth(int) const.

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

与えられたwidget を、このQStackedLayout の与えられたindex に挿入します。index が範囲外の場合、ウィジェットが追加されます(この場合、返されるのはwidget の実際のインデックスです)。

この関数が呼ばれる前にQStackedLayout が空だった場合、与えられたwidget が現在のウィジェットになる。

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

addWidget()、removeWidget()、setCurrentWidget()も参照

[override virtual] QLayoutItem *QStackedLayout::itemAt(int index) const

再インプリメント:QLayout::itemAt(int index) const.

[override virtual] QSize QStackedLayout::minimumSize() const

再実装: (int index) const:QLayout::minimumSize() const.

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

現在のウィジェットを、指定されたwidget に設定します。新しいカレントウィジェットは、このスタックレイアウトに既に含まれている必要があります。

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

[override virtual] void QStackedLayout::setGeometry(const QRect &rect)

再実装:QLayout::setGeometry(const QRect &r)。

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

再実装: (const QRect &r):QLayoutItem::sizeHint() const.

[override virtual] QLayoutItem *QStackedLayout::takeAt(int index)

再リプルメント:QLayout::takeAt(int index).

QWidget *QStackedLayout::widget(int index) const

与えられたindex にあるウィジェットを返します.与えられた位置にウィジェットがない場合はnullptr を返します.

currentWidget() およびindexOf()も参照

[signal] void QStackedLayout::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。