Класс QTabWidget
Класс QTabWidget предоставляет стеки виджетов с вкладками. Подробнее...
| Заголовок: | #include <QTabWidget> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
Публичные типы
| перечисление | TabPosition { Север, Юг, Запад, Восток } |
| перечисление | TabShape { Скругленные, Треугольные } |
Свойства
|
|
Открытые функции
| QTabWidget(QWidget *parent = Q_NULLPTR) | |
| ~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(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 |
| void | removeTab(int index) |
| void | setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner) |
| void | setDocumentMode(bool set) |
| void | setElideMode(Qt::TextElideMode) |
| 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(TabPosition) |
| void | setTabShape(TabShape s) |
| void | setTabText(int index, const QString &label) |
| void | setTabToolTip(int index, const QString &tip) |
| 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 |
| TabPosition | tabPosition() const |
| 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 |
| виртуальный int | heightForWidth(int width) const |
| виртуальный QSize | minimumSizeHint() const |
| виртуальный QSize | sizeHint() const |
- 214 публичных функций, унаследованных от QWidget
- 32 публичных функций, унаследованных от QObject
- 14 публичных функций, унаследованных от QPaintDevice
Публичные слоты
| void | setCurrentIndex(int index) |
| void | setCurrentWidget(QWidget *widget) |
Сигналы
| void | currentChanged(int index) |
| void | tabBarClicked(int index) |
| void | tabBarDoubleClicked(int index) |
| void | tabCloseRequested(int index) |
Защищенные функции
| void | initStyleOption(QStyleOptionTabWidgetFrame *option) const |
| void | setTabBar(QTabBar *tb) |
| виртуальный void | tabInserted(int index) |
| виртуальный void | tabRemoved(int index) |
Переопределенные защищенные функции
| виртуальный void | changeEvent(QEvent *ev) |
| виртуальный bool | event(QEvent *ev) |
| виртуальный void | keyPressEvent(QKeyEvent *e) |
| виртуальный void | paintEvent(QPaintEvent *event) |
| виртуальный void | resizeEvent(QResizeEvent *e) |
| виртуальный void | showEvent(QShowEvent *) |
- 35 защищенных функций, унаследованных от QWidget
- 9 защищенных функций, унаследованных от QObject
- 1 защищенная функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 5 статических публичных членов, унаследованных от QWidget
- 11 статических публичных членов, унаследованных от QObject
- 1 защищенный слот, унаследованный от QWidget
Подробное описание
Класс QTabWidget предоставляет стеки вкладок с виджетами.
Виджет вкладок предоставляет панель вкладок (см. QTabBar) и область "страницы", которая используется для отображения страниц, связанных с каждой вкладкой. По умолчанию панель вкладок отображается над областью страницы, но доступны различные конфигурации (см. TabPosition). Каждая вкладка связана с другим виджетом (также называемым страницей). Только текущая страница отображается в области страницы; все остальные страницы скрыты. Пользователь может показать другую страницу, щелкнув по ее вкладке или нажав сочетание Alt+буква, если оно есть.
Обычный способ использования QTabWidget заключается в следующем:
- Создайте QTabWidget.
- Создайте QWidget для каждой из страниц в диалоге вкладок, но не указывайте для них виджеты-родители.
- Вставьте дочерние виджеты в виджет страницы, используя макеты для их позиционирования в обычном порядке.
- Вызовите addTab() или insertTab() для размещения виджетов страниц в виджете вкладок, присваивая каждой вкладке подходящую метку с необязательным сочетанием клавиш.
Позиция вкладок определяется свойством tabPosition, их форма — свойством tabShape.
Сигнал currentChanged() генерируется при выборе страницы пользователем.
Индекс текущей страницы доступен в свойстве currentIndex(), текущий виджет страницы — в свойстве currentWidget(). Вы можете получить указатель на виджет страницы с заданным индексом, используя метод widget(), и найти позицию индекса виджета с помощью метода indexOf(). Используйте setCurrentWidget() или setCurrentIndex() для отображения конкретной страницы.
Вы можете изменить текст и значок вкладки с помощью setTabText() или setTabIcon(). Вкладку и связанную с ней страницу можно удалить с помощью removeTab().
Каждая вкладка либо включена, либо выключена в данный момент (см. setTabEnabled()). Если вкладка включена, текст вкладки отображается обычно, и пользователь может выбрать эту вкладку. Если она отключена, вкладка отображается по-другому, и пользователь не может выбрать эту вкладку. Обратите внимание, что даже если вкладка отключена, страница по-прежнему может быть видна, например, если все вкладки отключены.
Виджеты вкладок могут быть очень полезны для разделения сложного диалога. Альтернативой является использование QStackedWidget, для которого вам необходимо предоставить способ навигации между страницами, например, с помощью QToolBar или QListWidget.
Большая часть функциональности QTabWidget обеспечивается QTabBar (вверху, обеспечивая вкладки) и QStackedWidget (в большей части области, организуя отдельные страницы).
См. также QTabBar, QStackedWidget, QToolBox и Пример диалога вкладок.
Документация по типам членов
перечисление QTabWidget::TabPosition
Это перечисление определяет, где QTabWidget отображает строку вкладок:
| Постоянная | Значение | Описание |
|---|---|---|
QTabWidget::North |
0 |
Вкладки отображаются над страницами. |
QTabWidget::South |
1 |
Вкладки отображаются под страницами. |
QTabWidget::West |
2 |
Вкладки отображаются слева от страниц. |
QTabWidget::East |
3 |
Вкладки отображаются справа от страниц. |
перечисление QTabWidget::TabShape
Это перечисление определяет форму вкладок:
| Постоянная | Значение | Описание |
|---|---|---|
QTabWidget::Rounded |
0 |
Вкладки отображаются с закругленными краями. Это форма по умолчанию. |
QTabWidget::Triangular |
1 |
Вкладки отображаются с треугольными краями. |
Документация свойств
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.
При установке этого свойства рамка виджета вкладок не отображается. Этот режим полезен для отображения страниц типа документов, где страница занимает большую часть области виджета вкладок.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| bool | documentMode() const |
| void | setDocumentMode(bool set) |
См. также elideMode, QTabBar::documentMode, QTabBar::usesScrollButtons и QStyle::SH_TabBar_PreferNoArrows.
elideMode : Qt::TextElideMode
Как обрезать текст на панели вкладок
Это свойство управляет тем, как обрезаются элементы, когда для заданного размера панели вкладок недостаточно места для их отображения.
По умолчанию значение зависит от стиля.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| Qt::TextElideMode | elideMode() const |
| void | setElideMode(Qt::TextElideMode) |
См. также QTabBar::elideMode, usesScrollButtons и QStyle::SH_TabBar_ElideMode.
iconSize : QSize
Это свойство хранит размер значков на панели вкладок
Значение по умолчанию зависит от стиля. Это максимальный размер, который будут иметь значки. Значки не масштабируются, если они имеют меньший размер.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
См. также QTabBar::iconSize.
movable : bool
Это свойство определяет, может ли пользователь перемещать вкладки в области панели вкладок.
По умолчанию это свойство false;
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| bool | isMovable() const |
| void | setMovable(bool movable) |
tabBarAutoHide : bool
Если истинно, панель вкладок автоматически скрывается, когда она содержит менее 2 вкладок.
По умолчанию это свойство ложно.
Это свойство было добавлено в Qt 5.4.
Функции доступа:
| bool | tabBarAutoHide() const |
| void | setTabBarAutoHide(bool enabled) |
См. также QWidget::visible.
tabPosition : TabPosition
Это свойство хранит положение вкладок в этом виджете вкладок
Возможные значения для этого свойства описаны в перечислении TabPosition.
По умолчанию это свойство установлено в North.
Функции доступа:
| TabPosition | tabPosition() const |
| void | setTabPosition(TabPosition) |
См. также TabPosition.
tabShape : TabShape
Это свойство хранит форму вкладок в этом виджете вкладок
Возможные значения для этого свойства — QTabWidget::Rounded (по умолчанию) или QTabWidget::Triangular.
Функции доступа:
| TabShape | tabShape() const |
| void | setTabShape(TabShape s) |
См. также TabShape.
tabsClosable : bool
Это свойство указывает, добавляются ли автоматически кнопки закрытия к каждой вкладке.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| bool | tabsClosable() const |
| void | setTabsClosable(bool closeable) |
См. также QTabBar::tabsClosable().
usesScrollButtons : bool
Это свойство указывает, следует ли использовать кнопки прокрутки для прокрутки вкладок, когда их много.
Когда на панели вкладок слишком много вкладок для ее размера, панель вкладок может либо расширить свой размер, либо добавить кнопки, которые позволяют просматривать вкладки.
По умолчанию значение зависит от стиля.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | usesScrollButtons() const |
| void | setUsesScrollButtons(bool useButtons) |
См. также elideMode, QTabBar::usesScrollButtons и QStyle::SH_TabBar_PreferNoArrows.
Документация функций-членов
QTabWidget::QTabWidget(QWidget *parent = Q_NULLPTR)
Создаёт виджет с вкладками с родительским виджетом parent.
QTabWidget::~QTabWidget()
Удаляет виджет с вкладками.
int QTabWidget::addTab(QWidget *page, const QString &label)
Добавляет вкладку с заданной page и 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 в виджет вкладок и возвращает индекс вкладки на панели вкладок.
Эта функция аналогична addTab(), но с дополнительным параметром icon.
[virtual protected] void QTabWidget::changeEvent(QEvent *ev)
Переопределено из QWidget::changeEvent().
void QTabWidget::clear()
Удаляет все страницы, но не удаляет их сами. Вызов этой функции эквивалентен вызову removeTab() до тех пор, пока виджет вкладок не станет пустым.
QWidget *QTabWidget::cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
Возвращает виджет, отображаемый в углу виджета вкладок, или 0.
См. также setCornerWidget().
[signal] void QTabWidget::currentChanged(int index)
Этот сигнал генерируется всякий раз, когда изменяется индекс текущей страницы. Параметром является новое положение индекса текущей страницы, или -1, если нового нет (например, если в QTabWidget нет виджетов).
Примечание: Сигнал уведомления для свойства currentIndex.
См. также currentWidget() и currentIndex.
QWidget *QTabWidget::currentWidget() const
Возвращает указатель на страницу, которая в данный момент отображается в диалоге вкладок. Диалог вкладок делает все возможное, чтобы это значение никогда не было 0 (но если постараться достаточно сильно, это может произойти).
См. также currentIndex() и setCurrentWidget().
[virtual protected] bool QTabWidget::event(QEvent *ev)
Переопределено из QObject::event().
[virtual] bool QTabWidget::hasHeightForWidth() const
Переопределено из QWidget::hasHeightForWidth().
[virtual] int QTabWidget::heightForWidth(int width) const
Переопределено из QWidget::heightForWidth().
int QTabWidget::indexOf(QWidget *w) const
Возвращает положение индекса страницы, занятой виджетом w, или -1, если виджет не найден.
[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 и возвращает индекс вставленной вкладки в панели вкладок.
Текст label отображается на вкладке и может различаться в зависимости от конфигурации виджета вкладок.
Если label вкладки содержит амперсанд, буква, следующая за амперсандом, используется в качестве ярлыка для вкладки, например, если метка — «Обз&ор», то Alt+В станет ярлыком, который переведет фокус на эту вкладку.
Если index находится вне допустимого диапазона, вкладка просто добавляется в конец. В противном случае она вставляется в указанную позицию.
Если QTabWidget был пустым до вызова этой функции, новая страница становится текущей страницей. Вставка новой вкладки в индекс, меньший или равный текущему индексу, увеличит текущий индекс, но сохранит текущую страницу.
Примечание: Если вы вызываете insertTab() после show(), система макета попытается адаптироваться к изменениям в иерархии виджетов, что может привести к мерцанию. Чтобы предотвратить это, можно установить свойство QWidget::updatesEnabled в false перед изменениями; не забудьте установить свойство в true после завершения изменений, чтобы виджет снова получал события отрисовки.
См. также addTab().
int QTabWidget::insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)
Это перегруженный метод.
Вставляет вкладку с заданным label, page и icon в виджет вкладок по указанному index и возвращает индекс вставленной вкладки в панели вкладок.
Эта функция аналогична insertTab(), но с дополнительным параметром icon.
bool QTabWidget::isTabEnabled(int index) const
Возвращает true если страница в позиции index включена; в противном случае возвращает false.
См. также setTabEnabled() и QWidget::isEnabled().
[virtual protected] void QTabWidget::keyPressEvent(QKeyEvent *e)
Переопределено из QWidget::keyPressEvent().
[virtual] QSize QTabWidget::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
Возвращает подходящий минимальный размер для виджета вкладок.
[virtual protected] void QTabWidget::paintEvent(QPaintEvent *event)
Переопределено из QWidget::paintEvent().
Рисует панель вкладок виджета вкладок в ответ на событие отрисовки event.
void QTabWidget::removeTab(int index)
Удаляет вкладку в позиции index из этого стека виджетов. Сам виджет страницы не удаляется.
См. также addTab() и insertTab().
[virtual protected] void QTabWidget::resizeEvent(QResizeEvent *e)
Переопределено из QWidget::resizeEvent().
void QTabWidget::setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
Устанавливает заданный widget для отображения в указанном corner виджета вкладок. Геометрия виджета определяется на основе sizeHint() виджета и style().
Используется только горизонтальная часть corner.
Передача 0 скрывает виджет в углу.
Любой ранее установленный виджет в углу скрывается.
Все виджеты, установленные таким образом, будут удалены виджетом вкладок при его уничтожении, если вы не переместите виджет в другое родительское окно после установки другого виджета в углу (или 0).
Примечание: Виджеты углов предназначены для положений вкладок North и South; другие ориентации, как известно, не работают должным образом.
См. также cornerWidget() и setTabPosition().
[slot] void QTabWidget::setCurrentWidget(QWidget *widget)
Делает widget текущим виджетом. Используемый widget должен быть страницей в этом виджете вкладок.
См. также addTab(), setCurrentIndex() и currentWidget().
[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().
END_OF_DOCUMENT_MARKERvoid QTabWidget::setTabIcon(int index, const QIcon &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().
void QTabWidget::setTabWhatsThis(int index, const QString &text)
Устанавливает текст справки «Что это?» для страницы на позиции index в значение text.
Данная функция была добавлена в Qt 4.1.
См. также tabWhatsThis().
[virtual protected] void QTabWidget::showEvent(QShowEvent *)
Переопределено из QWidget::showEvent().
[virtual] QSize QTabWidget::sizeHint() const
Переопределено из QWidget::sizeHint().
QTabBar *QTabWidget::tabBar() const
Возвращает текущую QTabBar.
См. также setTabBar().
[signal] void QTabWidget::tabBarClicked(int index)
Этот сигнал генерируется при щелчке пользователем на вкладку с индексом index.
index относится к нажатой вкладке или -1, если под курсором нет вкладки.
Данная функция была добавлена в Qt 5.2.
[signal] void QTabWidget::tabBarDoubleClicked(int index)
Этот сигнал генерируется при двойном щелчке пользователем на вкладке с индексом index.
index — индекс нажатой вкладки или -1, если под курсором нет вкладки.
Данная функция была добавлена в Qt 5.2.
[signal] void QTabWidget::tabCloseRequested(int index)
Этот сигнал генерируется при нажатии на кнопку закрытия вкладки. index — индекс вкладки, которая должна быть удалена.
Данная функция была добавлена в Qt 4.5.
См. также setTabsClosable().
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
Возвращает текст справки «Что это?» для страницы на позиции index или пустую строку, если текст справки не установлен.
Данная функция была добавлена в Qt 4.1.
См. также setTabWhatsThis().
QWidget *QTabWidget::widget(int index) const
Возвращает страницу вкладки с индексом index или 0, если индекс вне диапазона.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtabwidget.html