Spec-Zone.ru › Qt 5.9

Класс 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
  • 32 открытых функции унаследовано от 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/qt-5.9/qstackedlayout.html

Spec-Zone.ru

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