Spec-Zone.ru › Qt 5.6

Класс QStackedWidget

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

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

Свойства

  • count : const int
  • currentIndex : int
  • 6 свойств унаследовано от QFrame
  • 58 свойств унаследовано от 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
  • 211 открытых функций унаследовано от QWidget
  • 31 открытых функций унаследовано от 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. Если индекс находится вне диапазона, 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/archives/qt-5.6/qstackedwidget.html

Spec-Zone.ru

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