Описание класса QStackedLayout [модуль QtGui]
Класс QStackedLayout предоставляет стек виджетов, в котором в один момент виден только один элемент. Далее...
#include <QStackedLayout> Унаследован от QLayout.
Открытые типы
Свойства
- 2 свойства, унаследованных от QLayout
- 1 свойство, унаследованное от QObject
Открытые функции
- 28 открытых функций, унаследованных от QLayout
- 29 открытых функций, унаследованных от QObject
- 17 открытых функций, унаследованных от QLayoutItem
Открытые слоты
- 1 открытый слот, унаследованный от QObject
Сигналы
- 1 сигнал, унаследованный от QObject
Дополнительные унаследованные члены
- 1 статический открытый член, унаследованный от QLayout
- 5 статических открытых членов, унаследованных от QObject
- 3 защищенные функции, унаследованные от QLayout
- 7 защищенных функций, унаследованных от 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.
Описание типов-членов
enum QStackedLayout::StackingMode
Данное перечисление определяет как компоновщик управляет видимостью своих дочерних виджетов.
Константа | Значение | Описание |
QStackedLayout::StackOne | 0 | Только текущий виджет является видимым. Это значение по умолчанию. |
QStackedLayout::StackAll | 1 | Все виджеты являются видимыми. Текущий виджет просто приподнят (raised). |
Данное перечисление было введено в Qt 4.4.
Описание свойств
count : const int
Данное свойство содержит количество виджетов, содержащихся в компоновщике.
Функции доступа:
- virtual int count () const
Смотрите также currentIndex() и widget().
currentIndex : int
Данное свойство содержит индекс видимого в данный момент виджета.
Если такого нет, то текущий индекс будет равен -1.
Функции доступа:
- int currentIndex () const
- void setCurrentIndex ( int index )
Смотрите также currentWidget() и indexOf().
Это свойство определяет способ управления видимостью дочерних виджетов.
Значение по умолчанию равно 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. Помните, что при этом виджеты компоновщика не уничтожаются.
int QStackedLayout::addWidget ( QWidget * widget )
Добавляет виджет widget в конец компоновщика и возвращает индекс добавленного widget.
Если до вызова данной функции QStackedLayout был пустым, то widget становится текущим виджетом.
Смотрите также insertWidget(), removeWidget() и setCurrentWidget().
void QStackedLayout::currentChanged ( int index ) [signal]
Данный сигнал испускается при смене текущего виджета. Параметр index определяет индекс нового текущего виджета, или -1, если нет нового (например, если в QStackedLayout нет виджетов)
Смотрите также currentWidget() и setCurrentWidget().
QWidget * QStackedLayout::currentWidget () const
Возвращает текущий виджет или 0, если в данном компоновщике нет виджетов
Смотрите также currentIndex() и setCurrentWidget().
int QStackedLayout::insertWidget ( int index, QWidget * widget )
Вставляет виджет widget в позицию index данного QStackedLayout. Если index вне диапазона виджетов, то виджет добавляется в конец (возвращает актуальный индекс вставленного виджета widget).
Если до вызова данной функции QStackedLayout был пустым, то widget становится текущим виджетом.
Добавление новых виджетов с индексом, большим или равным текущему, увеличит его, но сохранит текущий виджет.
Смотрите также addWidget(), removeWidget() и setCurrentWidget().
void QStackedLayout::setCurrentWidget ( QWidget * widget ) [slot]
Устанавливает в качестве текущего виджет widget. Новый виджет должен содержаться в компоновщике.
Смотрите также setCurrentIndex() и currentWidget().
QWidget * QStackedLayout::widget ( int index ) const
Возвращает виджет, стоящий в позиции index или 0, если в переданной позиции нет виджета.
Смотрите также currentWidget() и indexOf().
void QStackedLayout::widgetRemoved ( int index ) [signal]
Данный сигнал посылается при удалении виджета из компоновщика, стоящего в позиции index. Параметр index передаёт индекс удалённого виджета.
Смотрите также removeWidget().
|