Spec-Zone.ru › Qt 5.6

Класс QStackedLayout

Класс QStackedLayout предоставляет стек виджетов, где только один виджет виден в каждый момент времени. Подробнее...

Заголовок: #include <QStackedLayout>
qmake: QT += widgets
Наследуется от: QLayout
  • Список всех членов, включая унаследованные

Типы публичного доступа

Перечисление StackingMode { StackOne, StackAll }

Свойства

  • count : const int
  • currentIndex : int
  • stackingMode : StackingMode
  • 2 свойства унаследованы от QLayout
  • 1 свойство унаследовано от QObject

Функции публичного доступа

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

Переопределённые функции публичного доступа

virtual void addItem(QLayoutItem *item)
virtual int count() const
virtual bool hasHeightForWidth() const
virtual int heightForWidth(int width) const
virtual QLayoutItem * itemAt(int index) const
virtual QSize minimumSize() const
virtual void setGeometry(const QRect &rect)
virtual QSize sizeHint() const
virtual QLayoutItem * takeAt(int index)
  • 36 функций публичного доступа унаследованы от QLayout
  • 31 функция публичного доступа унаследована от QObject
  • 17 функций публичного доступа унаследованы от QLayoutItem

Свойства-слоты

void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)
  • 1 свойство-слот унаследован от QObject

Сигналы

void currentChanged(int index)
void widgetRemoved(int index)
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 1 статический член публичного доступа унаследован от QLayout
  • 11 статических членов публичного доступа унаследованы от QObject
  • 4 защищенных функции унаследованы от QLayout
  • 9 защищенных функций унаследованы от QObject

Подробное описание

Класс QStackedLayout предоставляет стек виджетов, где только один виджет виден в каждый момент времени.

QStackedLayout может быть использован для создания пользовательского интерфейса, аналогичного интерфейсу, предоставляемому QTabWidget. Также существует удобный класс QStackedWidget, построенный на основе QStackedLayout.

Класс 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 или QListWidget, которые хранят заголовки страниц QStackedLayout. Например:

    QComboBox *pageComboBox = new QComboBox;
    pageComboBox->addItem(tr("Page 1"));
    pageComboBox->addItem(tr("Page 2"));
    pageComboBox->addItem(tr("Page 3"));
    connect(pageComboBox, SIGNAL(activated(int)),
            stackedLayout, SLOT(setCurrentIndex(int)));

При заполнении макета виджеты добавляются во внутренний список. Функция indexOf() возвращает индекс виджета в этом списке. Виджеты можно добавить в конец списка с помощью функции addWidget() или вставить по заданному индексу с помощью функции insertWidget(). Функция removeWidget() удаляет виджет по заданному индексу из макета. Количество виджетов в макете можно получить с помощью функции count().

Функция widget() возвращает виджет по заданному индексу. Индекс виджета, отображаемого на экране, задаётся свойством currentIndex() и может быть изменён с помощью setCurrentIndex(). Аналогичным образом, текущий отображаемый виджет можно получить с помощью функции currentWidget(), а изменить его можно с помощью функции setCurrentWidget().

Всякий раз, когда текущий виджет в макете изменяется или виджет удаляется из макета, соответственно, излучаются сигналы currentChanged() и widgetRemoved().

См. также QStackedWidget и QTabWidget.

Документация по типам членов

Перечисление QStackedLayout::StackingMode

Это перечисление определяет, как макет обрабатывает свои дочерние виджеты относительно их видимости.

Постоянная Значение Описание
QStackedLayout::StackOne 0 Только текущий виджет виден. Это значение по умолчанию.
QStackedLayout::StackAll 1 Все виджеты видны. Текущий виджет просто выводится поверх остальных.

Это перечисление было введено или изменено в Qt 4.4.

Документация по свойству

count : const int

Это свойство содержит количество виджетов, содержащихся в макете.

Функции доступа:

virtual int count() const

См. также currentIndex() и widget().

currentIndex : int

Это свойство содержит индекс отображаемого виджета.

Текущий индекс равен -1, если нет текущего виджета.

Функции доступа:

int currentIndex() const
void setCurrentIndex(int index)

Сигнал уведомления:

void currentChanged(int index)

См. также currentWidget() и indexOf().

stackingMode : StackingMode

определяет способ обработки видимости дочерних виджетов.

Значение по умолчанию — StackOne. Установка свойства на StackAll позволяет использовать макет для наложения виджетов, которые выполняют дополнительный вывод поверх других виджетов, например, графические редакторы.

Это свойство было введено в Qt 4.4.

Функции доступа:

StackingMode stackingMode() const
void setStackingMode(StackingMode stackingMode)

Документация по функциям-членам

QStackedLayout::QStackedLayout()

Создаёт QStackedLayout без родителя.

Этот QStackedLayout должен быть установлен на виджет позже, чтобы начать действовать.

См. также addWidget() и insertWidget().

QStackedLayout::QStackedLayout(QWidget *parent)

Создаёт новый QStackedLayout с заданным родителем parent.

Этот макет установит себя на виджет parent и будет управлять геометрией его дочерних элементов.

QStackedLayout::QStackedLayout(QLayout *parentLayout)

Создаёт новый QStackedLayout и вставляет его в заданный parentLayout.

QStackedLayout::~QStackedLayout()

Удаляет этот QStackedLayout. Обратите внимание, что виджеты макета не удаляются.

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

Переопределено из QLayout::addItem().

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

Возвращает текущий виджет или 0, если в этом макете нет виджетов.

См. также currentIndex() и setCurrentWidget().

[virtual] bool QStackedLayout::hasHeightForWidth() const

Переопределено из QLayoutItem::hasHeightForWidth().

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

Переопределено из QLayoutItem::heightForWidth().

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

Вставляет заданный widget в заданный index в этом QStackedLayout. Если index выходит за пределы диапазона, виджет добавляется в конец (в этом случае возвращается фактический индекс widget).

Если QStackedLayout пуст перед вызовом этой функции, заданный widget становится текущим виджетом.

Вставка нового виджета в индекс, меньший или равный текущему индексу, увеличит текущий индекс, но сохранит текущий виджет.

См. также addWidget(), removeWidget() и setCurrentWidget().

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

Переопределено из QLayout::itemAt().

[virtual] QSize QStackedLayout::minimumSize() const

Переопределено из QLayoutItem::minimumSize().

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

Устанавливает текущий виджет на указанный widget. Новый текущий виджет должен уже содержаться в этом макете.

См. также setCurrentIndex() и currentWidget().

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

Переопределено из QLayoutItem::setGeometry().

[virtual] QSize QStackedLayout::sizeHint() const

Переопределено из QLayoutItem::sizeHint().

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

Переопределено из QLayout::takeAt().

QWidget *QStackedLayout::widget(int index) const

Возвращает виджет по заданному index или 0, если виджета в указанной позиции нет.

См. также currentWidget() и indexOf().

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

Этот сигнал генерируется всякий раз, когда виджет удаляется из макета. Индекс виджета index передаётся в качестве параметра.

См. также removeWidget().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qstackedlayout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API