Spec-Zone.ru › Qt 5.9

Класс QStackedWidget

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

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

Свойства

  • count : const int
  • currentIndex : int
  • 6 свойств унаследовано от QFrame
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

Открытые функции

QStackedWidget(QWidget *parent = Q_NULLPTR)
~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
  • 32 открытых функций унаследовано от QObject
  • 14 открытых функций унаследовано от QPaintDevice

Открытые слоты

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

Сигналы

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

Переопределённые защищённые функции

virtual bool event(QEvent *e)
  • 4 защищённых функции унаследовано от QFrame
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice

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

  • 5 статических открытых членов унаследовано от QWidget
  • 11 статических открытых членов унаследовано от QObject
  • 4 защищённых функции унаследовано от QFrame
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice
  • 1 защищённый слот унаследовано от QWidget

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

Класс 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 = Q_NULLPTR)

Конструктор QStackedWidget с заданным parent.

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

QStackedWidget::~QStackedWidget()

Удаляет этот стек виджетов и освобождает все выделенные ресурсы.

int QStackedWidget::addWidget(QWidget *widget)

Добавляет указанный widget в QStackedWidget и возвращает его индекс. Владение widget передаётся QStackedWidget.

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

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

[signal] void QStackedWidget::currentChanged(int index)

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

Параметр содержит индекс нового текущего виджета или -1, если его нет (например, если в QStackedWidget нет виджетов).

Примечание: Сигнал-уведомление для свойства currentIndex.

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

QWidget *QStackedWidget::currentWidget() const

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

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

[virtual protected] bool QStackedWidget::event(QEvent *e)

Переопределено из QObject::event().

int QStackedWidget::indexOf(QWidget *widget) const

Возвращает индекс заданного widget или -1, если заданный widget не является дочерним элементом QStackedWidget.

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

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

Вставляет заданный widget в заданный индекс в 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

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

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

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

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

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

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

Spec-Zone.ru

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