Spec-Zone.ru › Qt 6.1

Класс QTabWidget

Класс QTabWidget предоставляет стек виджетов с вкладками. Подробнее...

Заголовок: #include <QTabWidget>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QWidget
  • Список всех членов, включая унаследованные

Открытые типы

перечисление ПоложениеВкладки { Север, Юг, Запад, Восток }
перечисление ФормаВкладки { Скругленная, Треугольная }

Свойства

  • count : const int
  • currentIndex : int
  • documentMode : bool
  • elideMode : Qt::TextElideMode
  • iconSize : QSize
  • movable : bool
  • tabBarAutoHide : bool
  • tabPosition : TabPosition
  • tabShape : TabShape
  • tabsClosable : bool
  • usesScrollButtons : bool

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

QTabWidget(QWidget *parent = nullptr)
virtual ~QTabWidget()
int addTab(QWidget *page, const QString &label)
int addTab(QWidget *page, const QIcon &icon, const QString &label)
void clear()
QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
int count() const
int currentIndex() const
QWidget * currentWidget() const
bool documentMode() const
Qt::TextElideMode elideMode() const
QSize iconSize() const
int indexOf(const QWidget *w) const
int insertTab(int index, QWidget *page, const QString &label)
int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)
bool isMovable() const
bool isTabEnabled(int index) const
bool isTabVisible(int index) const
void removeTab(int index)
void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
void setDocumentMode(bool set)
void setElideMode(Qt::TextElideMode mode)
void setIconSize(const QSize &size)
void setMovable(bool movable)
void setTabBarAutoHide(bool enabled)
void setTabEnabled(int index, bool enable)
void setTabIcon(int index, const QIcon &icon)
void setTabPosition(QTabWidget::TabPosition position)
void setTabShape(QTabWidget::TabShape s)
void setTabText(int index, const QString &label)
void setTabToolTip(int index, const QString &tip)
void setTabVisible(int index, bool visible)
void setTabWhatsThis(int index, const QString &text)
void setTabsClosable(bool closeable)
void setUsesScrollButtons(bool useButtons)
QTabBar * tabBar() const
bool tabBarAutoHide() const
QIcon tabIcon(int index) const
QTabWidget::TabPosition tabPosition() const
QTabWidget::TabShape tabShape() const
QString tabText(int index) const
QString tabToolTip(int index) const
QString tabWhatsThis(int index) const
bool tabsClosable() const
bool usesScrollButtons() const
QWidget * widget(int index) const

Переопределённые открытые функции

виртуальный bool hasHeightForWidth() const override
виртуальный int heightForWidth(int width) const override
виртуальный QSize minimumSizeHint() const override
виртуальный QSize sizeHint() const override

Public Slots

void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)

Сигналы

void currentChanged(int index)
void tabBarClicked(int index)
void tabBarDoubleClicked(int index)
void tabCloseRequested(int index)

Protected Functions

виртуальный void initStyleOption(QStyleOptionTabWidgetFrame *option) const
void setTabBar(QTabBar *tb)
виртуальный void tabInserted(int index)
виртуальный void tabRemoved(int index)

Переопределённые Protected Functions

виртуальный void changeEvent(QEvent *ev) override
виртуальный bool event(QEvent *ev) override
виртуальный void keyPressEvent(QKeyEvent *e) override
виртуальный void paintEvent(QPaintEvent *event) override
виртуальный void resizeEvent(QResizeEvent *e) override
виртуальный void showEvent(QShowEvent *) override

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

Виджет вкладок предоставляет панель вкладок (см. QTabBar) и область "страниц", которая используется для отображения страниц, связанных с каждой вкладкой. По умолчанию панель вкладок отображается над областью страниц, но доступны различные конфигурации (см. TabPosition). Каждая вкладка связана с различным виджетом (называемым страницей). Только текущая страница отображается в области страниц; все остальные страницы скрыты. Пользователь может отобразить другую страницу, щелкнув по её вкладке или нажав сочетание клавиш Alt+буква, если оно есть.

Обычный способ использования QTabWidget состоит в следующем:

  1. Создайте QTabWidget.
  2. Создайте QWidget для каждой из страниц в диалоге вкладок, но не указывайте родительские виджеты для них.
  3. Вставьте дочерние виджеты в виджет страницы, используя макеты для их размещения, как обычно.
  4. Вызовите addTab() или insertTab() для размещения виджетов страниц в виджете вкладок, присвоив каждой вкладке подходящее имя с необязательным сочетанием клавиш.

Положение вкладок определяется свойством tabPosition, а их форма — свойством tabShape.

Сигнал currentChanged() генерируется при выборе пользователем страницы.

Индекс текущей страницы доступен как currentIndex(), текущий виджет страницы — с помощью currentWidget(). Вы можете получить указатель на виджет страницы с заданным индексом, используя widget(), и найти позицию индекса виджета с помощью indexOf(). Используйте setCurrentWidget() или setCurrentIndex() для отображения конкретной страницы.

Вы можете изменить текст и значок вкладки, используя setTabText() или setTabIcon(). Вкладку и связанную с ней страницу можно удалить с помощью removeTab().

Каждая вкладка либо включена, либо выключена в данный момент (см. setTabEnabled()). Если вкладка включена, текст вкладки отображается обычно, и пользователь может выбрать эту вкладку. Если она выключена, вкладка отображается другим способом, и пользователь не может выбрать эту вкладку. Обратите внимание, что даже если вкладка выключена, страница всё ещё может быть видна, например, если все вкладки отключены.

Виджеты вкладок могут быть очень хорошим способом разделить сложный диалог. Альтернативой является использование QStackedWidget, для которого вы предоставляете способ навигации между страницами, например, с помощью QToolBar или QListWidget.

Большая часть функциональности QTabWidget обеспечивается QTabBar (вверху, предоставляя вкладки) и QStackedWidget (большая часть области, организующей отдельные страницы).

См. также QTabBar, QStackedWidget, QToolBox и Пример диалога вкладок.

Документация по типам членов

enum QTabWidget::TabPosition

Этот перечисление определяет, где QTabWidget рисует строку вкладок:

Постоянная Значение Описание
QTabWidget::North 0 Вкладки рисуются над страницами.
QTabWidget::South 1 Вкладки рисуются под страницами.
QTabWidget::West 2 Вкладки рисуются слева от страниц.
QTabWidget::East 3 Вкладки рисуются справа от страниц.

enum QTabWidget::TabShape

Этот перечисление определяет форму вкладок:

Постоянная Значение Описание
QTabWidget::Rounded 0 Вкладки рисуются с закругленным видом. Это форма по умолчанию.
QTabWidget::Triangular 1 Вкладки рисуются с треугольным видом.

Документация свойств

[read-only] count : const int

Это свойство хранит количество вкладок в строке вкладок.

По умолчанию это свойство содержит значение 0.

Функции доступа:

int count() const

currentIndex : int

Это свойство хранит индекс текущей страницы вкладки.

Текущий индекс равен -1, если нет текущего виджета.

По умолчанию это свойство содержит значение -1, так как изначально в виджете нет вкладок.

Функции доступа:

int currentIndex() const
void setCurrentIndex(int index)

Сигнал уведомления:

void currentChanged(int index)

documentMode : bool

Это свойство указывает, отображается ли виджет вкладок в режиме, подходящем для страниц документов. Это то же самое, что и режим документа в macOS.

При установке этого свойства рамка виджета вкладок не отображается. Этот режим полезен для отображения страниц типа документов, где страница занимает большую часть области виджета вкладок.

Функции доступа:

bool documentMode() const
void setDocumentMode(bool set)

См. также elideMode, QTabBar::documentMode, QTabBar::usesScrollButtons и QStyle::SH_TabBar_PreferNoArrows.

elideMode : Qt::TextElideMode

Как обрезать текст в строке вкладок.

Это свойство управляет тем, как обрезаются элементы, когда для заданного размера строки вкладок нет достаточно места для их отображения.

По умолчанию значение зависит от стиля.

Функции доступа:

Qt::TextElideMode elideMode() const
void setElideMode(Qt::TextElideMode mode)

См. также QTabBar::elideMode, usesScrollButtons и QStyle::SH_TabBar_ElideMode.

iconSize : QSize

Это свойство содержит размер значков в строке вкладок.

Значение по умолчанию зависит от стиля. Это максимальный размер, который будут иметь значки. Значки не масштабируются вверх, если их размер меньше.

Функции доступа:

QSize iconSize() const
void setIconSize(const QSize &size)

См. также QTabBar::iconSize.

movable : bool

Это свойство указывает, может ли пользователь перемещать вкладки в области строки вкладок.

По умолчанию это свойство false;

Функции доступа:

bool isMovable() const
void setMovable(bool movable)

[since 5.4] tabBarAutoHide : bool

Если true, строка вкладок автоматически скрывается, когда она содержит менее 2 вкладок.

По умолчанию это свойство false.

Это свойство было введено в Qt 5.4.

Функции доступа:

bool tabBarAutoHide() const
void setTabBarAutoHide(bool enabled)

См. также QWidget::visible.

tabPosition : TabPosition

Это свойство хранит положение вкладок в этом виджете вкладок.

Возможные значения для этого свойства описаны в перечислении TabPosition.

По умолчанию это свойство установлено в North.

Функции доступа:

QTabWidget::TabPosition tabPosition() const
void setTabPosition(QTabWidget::TabPosition position)

См. также TabPosition.

tabShape : TabShape

Это свойство хранит форму вкладок в этом виджете вкладок.

Возможные значения для этого свойства — QTabWidget::Rounded (по умолчанию) или QTabWidget::Triangular.

Функции доступа:

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape s)

См. также TabShape.

tabsClosable : bool

Это свойство указывает, добавляются ли автоматически кнопки закрытия к каждой вкладке.

Функции доступа:

bool tabsClosable() const
void setTabsClosable(bool closeable)

См. также QTabBar::tabsClosable().

usesScrollButtons : bool

Это свойство указывает, должна ли строка вкладок использовать кнопки для прокрутки вкладок, когда их много.

Когда в строке вкладок слишком много вкладок для ее размера, строка вкладок может либо выбрать расширение своего размера, либо добавить кнопки, позволяющие прокручивать вкладки.

По умолчанию значение зависит от стиля.

Функции доступа:

bool usesScrollButtons() const
void setUsesScrollButtons(bool useButtons)

См. также elideMode, QTabBar::usesScrollButtons и QStyle::SH_TabBar_PreferNoArrows.

Документация функций-членов

QTabWidget::QTabWidget(QWidget *parent = nullptr)

Создает виджет вкладок с родителем parent.

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

Этот сигнал подается всякий раз, когда индекс текущей страницы меняется. Параметр — новый индекс текущей страницы index или -1, если его нет (например, если в QTabWidget нет виджетов).

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

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

[slot] void QTabWidget::setCurrentWidget(QWidget *widget)

Устанавливает widget в качестве текущего виджета. Используемый widget должен быть страницей в этом виджете вкладок.

См. также addTab(), setCurrentIndex() и currentWidget().

[signal, since 5.2] void QTabWidget::tabBarClicked(int index)

Этот сигнал подается, когда пользователь щелкает по вкладке с индексом index.

index относится к щелкнутой вкладке или -1, если под курсором нет вкладки.

Эта функция была введена в Qt 5.2.

[signal, since 5.2] void QTabWidget::tabBarDoubleClicked(int index)

Этот сигнал подается, когда пользователь дважды щелкает по вкладке с индексом index.

index — индекс нажатой вкладки, или -1, если под курсором нет вкладки.

Функция была введена в Qt 5.2.

[signal] void QTabWidget::tabCloseRequested(int index)

Этот сигнал испускается, когда нажимается кнопка закрытия вкладки. index — индекс вкладки, которую необходимо удалить.

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

[virtual] QTabWidget::~QTabWidget()

Удаляет виджет с вкладками.

int QTabWidget::addTab(QWidget *page, const QString &label)

Добавляет вкладку с заданным page и label в виджет вкладок и возвращает индекс вкладки в строке вкладок. Владение page передаётся виджету QTabWidget.

Если label вкладки содержит амперсанд (&), символ, следующий за амперсандом, используется в качестве сочетания клавиш для вкладки. Например, если label — «Bro&wse», то сочетание Alt+W станет сочетанием, перемещающим фокус на эту вкладку.

Примечание: Если вы вызываете addTab() после show(), система макета попытается скорректировать изменения в иерархии виджетов и может привести к мерцанию. Чтобы предотвратить это, вы можете установить свойство QWidget::updatesEnabled в false перед изменениями; не забудьте установить свойство в true, когда изменения будут выполнены, чтобы виджет снова получал события рисования.

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

int QTabWidget::addTab(QWidget *page, const QIcon &icon, const QString &label)

Это перегруженная функция.

Добавляет вкладку с заданным page, icon и label в виджет вкладок и возвращает индекс вкладки в строке вкладок. Владение page передаётся виджету QTabWidget.

Эта функция аналогична addTab(), но с дополнительным параметром icon.

[override virtual protected] void QTabWidget::changeEvent(QEvent *ev)

Переопределяет: QWidget::changeEvent(QEvent *event).

void QTabWidget::clear()

Удаляет все страницы, но не удаляет их. Вызов этой функции эквивалентен вызову removeTab() до тех пор, пока виджет вкладок не станет пустым.

QWidget *QTabWidget::cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const

Возвращает виджет, отображаемый в corner виджета вкладок, или nullptr.

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

QWidget *QTabWidget::currentWidget() const

Возвращает указатель на страницу, которая в данный момент отображается в диалоге вкладок. Диалог вкладок делает всё возможное, чтобы это значение никогда не было 0 (но при достаточных усилиях, это может быть).

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

[override virtual protected] bool QTabWidget::event(QEvent *ev)

Переопределяет: QWidget::event(QEvent *event).

[override virtual] bool QTabWidget::hasHeightForWidth() const

Переопределяет: QWidget::hasHeightForWidth() const.

[override virtual] int QTabWidget::heightForWidth(int width) const

Переопределяет: QWidget::heightForWidth(int w) const.

int QTabWidget::indexOf(const QWidget *w) const

Возвращает позицию индекса страницы, занятой виджетом w, или -1, если виджет не найден.

[virtual protected] void QTabWidget::initStyleOption(QStyleOptionTabWidgetFrame *option) const

Инициализирует option значениями из этого QTabWidget. Этот метод полезен для подклассов, когда им нужен QStyleOptionTabWidgetFrame, но они не хотят заполнять всю информацию самостоятельно.

См. также QStyleOption::initFrom() и QTabBar::initStyleOption().

int QTabWidget::insertTab(int index, QWidget *page, const QString &label)

Вставляет вкладку с заданным label и page в виджет вкладок в указанный index и возвращает индекс вставленной вкладки в строке вкладок. Владение page передаётся виджету QTabWidget.

Текст метки отображается на вкладке и может отличаться в зависимости от конфигурации виджета вкладок.

Если метка вкладки содержит амперсанд (&), символ, следующий за амперсандом, используется в качестве сочетания клавиш для вкладки. Например, если метка — «Bro&wse», то сочетание Alt+W станет сочетанием, перемещающим фокус на эту вкладку.

Если index находится вне диапазона, вкладка просто добавляется в конец. В противном случае она вставляется в указанную позицию.

Если QTabWidget был пустым перед вызовом этой функции, новая страница станет текущей страницей. Вставка новой вкладки в индекс, меньший или равный текущему индексу, увеличит текущий индекс, но сохранит текущую страницу.

Примечание: Если вы вызываете insertTab() после show(), система макета попытается скорректировать изменения в иерархии виджетов и может привести к мерцанию. Чтобы предотвратить это, вы можете установить свойство QWidget::updatesEnabled в false перед изменениями; не забудьте установить свойство в true, когда изменения будут выполнены, чтобы виджет снова получал события рисования.

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

int QTabWidget::insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)

Это перегруженная функция.

Вставляет вкладку с заданной меткой, page и иконкой в виджет вкладок в указанный index и возвращает индекс вставленной вкладки в строке вкладок. Владение page передаётся виджету QTabWidget.

Эта функция аналогична insertTab(), но с дополнительной иконкой.

bool QTabWidget::isTabEnabled(int index) const

Возвращает true, если страница в позиции index включена; в противном случае возвращает false.

См. также setTabEnabled() и QWidget::isEnabled().

[since 5.15] bool QTabWidget::isTabVisible(int index) const

Возвращает true, если страница в позиции index видима; в противном случае возвращает false.

Функция была введена в Qt 5.15.

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

[override virtual protected] void QTabWidget::keyPressEvent(QKeyEvent *e)

Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).

[override virtual] QSize QTabWidget::minimumSizeHint() const

Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.

Возвращает подходящий минимальный размер для виджета вкладок.

[override virtual protected] void QTabWidget::paintEvent(QPaintEvent *event)

Переопределяет: QWidget::paintEvent(QPaintEvent *event).

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

void QTabWidget::removeTab(int index)

Удаляет вкладку в позиции index из этого набора виджетов. Сам виджет страницы не удаляется.

См. также addTab() и insertTab().

[override virtual protected] void QTabWidget::resizeEvent(QResizeEvent *e)

Переопределяет: QWidget::resizeEvent(QResizeEvent *event).

void QTabWidget::setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)

Устанавливает указанный widget для отображения в указанном corner виджета вкладок. Геометрия виджета определяется на основе его sizeHint() и style().

Используется только горизонтальная часть corner.

Передача nullptr не отображает виджет в углу.

Любой ранее установленный виджет угла скрывается.

Все виджеты, установленные здесь, будут удалены виджетом вкладки при его уничтожении, если вы не переместите виджет в другое место после установки другого виджета угла (или nullptr).

Примечание: Виджеты угла предназначены для положений вкладок Север и Юг; другие ориентации, как известно, работают неправильно.

См. также cornerWidget() и setTabPosition().

[protected] void QTabWidget::setTabBar(QTabBar *tb)

Заменяет заголовок диалогового окна QTabBar на вкладку tb. Обратите внимание, что это необходимо выполнить до добавления вкладок, иначе поведение будет неопределённым.

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

void QTabWidget::setTabEnabled(int index, bool enable)

Если enable имеет значение true, страница в позиции index включена; в противном случае страница в позиции index отключена. Вкладка страницы перерисовывается соответствующим образом.

QTabWidget использует QWidget::setEnabled() внутри, а не сохраняет отдельный флаг.

Обратите внимание, что даже отключённая вкладка/страница может быть видимой. Если страница уже видна, QTabWidget не будет скрывать её; если все страницы отключены, QTabWidget отобразит одну из них.

См. также isTabEnabled() и QWidget::setEnabled().

void QTabWidget::setTabIcon(int index, const QIcon &icon)

Устанавливает icon для вкладки в позиции index.

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

void QTabWidget::setTabText(int index, const QString &label)

Определяет новую метку для вкладки страницы в позиции index.

Если предоставленный текст содержит символ амперсанд ('&'), для него автоматически создается сочетание клавиш. Символ, следующий за '&', будет использоваться в качестве сочетания клавиш. Любое предыдущее сочетание клавиш будет перезаписано или очищено, если сочетание клавиш не определено текстом. Подробности см. в документации QShortcut (чтобы отобразить фактический амперсанд, используйте '&&').

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

void QTabWidget::setTabToolTip(int index, const QString &tip)

Устанавливает подсказку инструмента вкладки для страницы в позиции index в tip.

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

[since 5.15] void QTabWidget::setTabVisible(int index, bool visible)

Если visible имеет значение true, страница в позиции index видна; в противном случае страница в позиции index скрыта. Вкладка страницы перерисовывается соответствующим образом.

Эта функция была введена в Qt 5.15.

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

void QTabWidget::setTabWhatsThis(int index, const QString &text)

Устанавливает текст справки What's This для страницы в позиции index в text.

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

[override virtual protected] void QTabWidget::showEvent(QShowEvent *)

Переопределяет: QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QTabWidget::sizeHint() const

Переопределяет функцию доступа к свойству: QWidget::sizeHint.

QTabBar *QTabWidget::tabBar() const

Возвращает текущую QTabBar.

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

QIcon QTabWidget::tabIcon(int index) const

Возвращает значок для вкладки на странице в позиции index.

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

[virtual protected] void QTabWidget::tabInserted(int index)

Этот виртуальный обработчик вызывается после добавления или вставки новой вкладки в позицию index.

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

[virtual protected] void QTabWidget::tabRemoved(int index)

Этот виртуальный обработчик вызывается после удаления вкладки из позиции index.

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

QString QTabWidget::tabText(int index) const

Возвращает текст метки для вкладки на странице в позиции index.

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

QString QTabWidget::tabToolTip(int index) const

Возвращает подсказку инструмента вкладки для страницы в позиции index или пустую строку, если подсказка не установлена.

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

QString QTabWidget::tabWhatsThis(int index) const

Возвращает текст справки What's This для страницы в позиции index или пустую строку, если текст справки не установлен.

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

QWidget *QTabWidget::widget(int index) const

Возвращает вкладку страницы в позиции index или nullptr если index находится вне диапазона.

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

Spec-Zone.ru

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