Класс QStackedWidget
Класс QStackedWidget предоставляет стек виджетов, где только один виджет виден в данный момент. Подробнее...
| Заголовок: | #include <QStackedWidget> |
| qmake: | QT += widgets |
| Наследуется от: | QFrame |
Свойства
- count : const int
- currentIndex : int
- 6 свойств унаследовано от QFrame
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QStackedWidget(QWidget *parent = nullptr) | |
| virtual | ~QStackedWidget() |
| int | addWidget(QWidget *widget) |
| int | count() const |
| int | currentIndex() const |
| QWidget * | currentWidget() const |
| int | indexOf(QWidget *widget) const |
| int | insertWidget(int index, QWidget *widget) |
| void | removeWidget(QWidget *widget) |
| QWidget * | widget(int index) const |
- 14 открытых функций унаследовано от QFrame
- 214 открытых функций унаследовано от QWidget
- 34 открытых функций унаследовано от QObject
- 14 открытых функций унаследовано от QPaintDevice
Открытые слоты
| void | setCurrentIndex(int index) |
| void | setCurrentWidget(QWidget *widget) |
Сигналы
| void | currentChanged(int index) |
| void | widgetRemoved(int index) |
Переопределенные защищенные функции
| virtual bool | event(QEvent *e) override |
- 4 защищенные функции унаследовано от QFrame
- 35 защищенных функций унаследовано от QWidget
- 9 защищенных функций унаследовано от QObject
- 1 защищенная функция унаследовано от QPaintDevice
Дополнительные унаследованные члены
- 1 открытая переменная унаследована от QObject
- 5 статические открытые члены унаследовано от QWidget
- 10 статических открытых членов унаследовано от QObject
- 4 защищенные функции унаследовано от QFrame
- 35 защищенных функций унаследовано от QWidget
- 9 защищенных функций унаследовано от QObject
- 1 защищенная функция унаследовано от QPaintDevice
- 1 защищенный слот унаследовано от QWidget
- 2 защищенные переменные унаследовано от QObject
- 1 защищенный тип унаследовано от QPaintDevice
Подробное описание
Класс QStackedWidget предоставляет стек виджетов, где только один виджет виден в данный момент.
QStackedWidget может использоваться для создания пользовательского интерфейса, аналогичного интерфейсу QTabWidget. Это виджет удобной компоновки, построенный поверх класса QStackedLayout.
Как и QStackedLayout, QStackedWidget может быть создан и заполнен несколькими дочерними виджетами («страницами»):
QWidget *firstPageWidget = new QWidget;
QWidget *secondPageWidget = new QWidget;
QWidget *thirdPageWidget = new QWidget;
QStackedWidget *stackedWidget = new QStackedWidget;
stackedWidget->addWidget(firstPageWidget);
stackedWidget->addWidget(secondPageWidget);
stackedWidget->addWidget(thirdPageWidget);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(stackedWidget);
setLayout(layout); QStackedWidget не предоставляет встроенных средств для переключения страниц пользователем. Это обычно делается с помощью QComboBox или QListWidget, которые хранят заголовки страниц QStackedWidget. Например:
QComboBox *pageComboBox = new QComboBox;
pageComboBox->addItem(tr("Page 1"));
pageComboBox->addItem(tr("Page 2"));
pageComboBox->addItem(tr("Page 3"));
connect(pageComboBox, SIGNAL(activated(int)),
stackedWidget, SLOT(setCurrentIndex(int))); При заполнении стека виджетов виджеты добавляются во внутренний список. Функция indexOf() возвращает индекс виджета в этом списке. Виджеты можно добавить в конец списка с помощью функции addWidget() или вставить по заданному индексу с помощью функции insertWidget(). Функция removeWidget() удаляет виджет из стека. Количество виджетов в стеке можно получить с помощью функции count().
Функция widget() возвращает виджет по заданному индексу. Индекс виджета, отображаемого на экране, задаётся свойством currentIndex() и может быть изменён с помощью свойства setCurrentIndex(). Аналогично, текущий отображаемый виджет можно получить с помощью функции currentWidget(), и изменить его с помощью функции setCurrentWidget().
При изменении текущего виджета в стеке или удалении виджета из стека соответственно испускаются сигналы currentChanged() и widgetRemoved().
См. также QStackedLayout и QTabWidget.
Документация свойств
count : const int
Это свойство содержит количество виджетов, содержащихся в этом стеке виджетов
По умолчанию это свойство содержит значение 0.
Функции доступа:
| int | count() const |
См. также currentIndex() и widget().
currentIndex : int
Это свойство содержит индекс положения виджета, который отображается
Текущий индекс равен -1, если нет текущего виджета.
По умолчанию это свойство содержит значение -1, так как стек изначально пуст.
Функции доступа:
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Сигнал уведомления:
| void | currentChanged(int index) |
См. также currentWidget() и indexOf().
Документация по функциям-членам
QStackedWidget::QStackedWidget(QWidget *parent = nullptr)
Конструктор QStackedWidget с заданным parent.
См. также addWidget() и insertWidget().
[virtual] QStackedWidget::~QStackedWidget()
Уничтожает этот стековый виджет и освобождает все выделенные ресурсы.
int QStackedWidget::addWidget(QWidget *widget)
Добавляет указанный виджет widget в QStackedWidget и возвращает его индекс. Владение widget передаётся QStackedWidget.
Если QStackedWidget пуст перед вызовом этой функции, widget становится текущим виджетом.
См. также insertWidget(), removeWidget() и setCurrentWidget().
[signal] void QStackedWidget::currentChanged(int index)
Этот сигнал генерируется всякий раз, когда меняется текущий виджет.
Параметр содержит индекс index нового текущего виджета или -1, если нового текущего виджета нет (например, если в QStackedWidget нет виджетов).
Примечание: Сигнал-уведомление для свойства currentIndex.
См. также currentWidget() и setCurrentWidget().
QWidget *QStackedWidget::currentWidget() const
Возвращает текущий виджет или 0, если нет дочерних виджетов.
См. также currentIndex() и setCurrentWidget().
[override virtual protected] bool QStackedWidget::event(QEvent *e)
Переопределено из QFrame::event().
int QStackedWidget::indexOf(QWidget *widget) const
Возвращает индекс указанного widget или -1, если данный widget не является дочерним элементом QStackedWidget.
См. также currentIndex() и widget().
int QStackedWidget::insertWidget(int index, QWidget *widget)
Вставляет указанный widget в указанный index в QStackedWidget. Владение widget передаётся QStackedWidget. Если index выходит за пределы диапазона, widget добавляется в конец (в этом случае возвращается фактический индекс widget).
Если QStackedWidget был пустым перед вызовом этой функции, данный widget становится текущим.
Вставка нового виджета в индекс, меньший или равный текущему индексу, увеличит текущий индекс, но сохранит текущий виджет.
См. также addWidget(), removeWidget() и setCurrentWidget().
void QStackedWidget::removeWidget(QWidget *widget)
Удаляет widget из QStackedWidget. То есть widget не удаляется, а просто удаляется из стекового макета, из-за чего он скрывается.
Примечание: Родительский объект и родительский виджет widget останутся QStackedWidget. Если приложение хочет повторно использовать удалённый widget, рекомендуется переродировать его.
См. также addWidget(), insertWidget() и currentWidget().
[slot] void QStackedWidget::setCurrentWidget(QWidget *widget)
Устанавливает текущим виджетом указанный widget. Новый текущий виджет должен уже быть частью этого стекового виджета.
См. также currentWidget() и setCurrentIndex().
QWidget *QStackedWidget::widget(int index) const
Возвращает виджет по заданному index или 0, если такого виджета нет.
См. также currentWidget() и indexOf().
[signal] void QStackedWidget::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.11/qstackedwidget.html