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 } |
プロパティ
- count : const int
- currentIndex : int
- stackingMode : StackingMode
パブリック関数
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::StackOne | 0 | 現在のウィジェットだけが表示されます。これはデフォルトです。 |
QStackedLayout::StackAll | 1 | すべてのウィジェットが表示されます。現在のウィジェットは単に表示されます。 |
プロパティの説明
[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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。