Класс QTabWidget
Класс QTabWidget предоставляет набор вкладок. Подробнее...
| Заголовок: | #include <QTabWidget> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
Публичные типы
| Перечисление | TabPosition { Север, Юг, Запад, Восток } |
| Перечисление | TabShape { Закругленные, Треугольные } |
Свойства
|
|
Открытые функции
| 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(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(QTabWidget::TabPosition) |
| void | setTabShape(QTabWidget::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 |
| 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 |
Переопределённые открытые функции
| virtual bool | hasHeightForWidth() const override |
| virtual int | heightForWidth(int width) const override |
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
- 214 public functions inherited from QWidget
- 31 public functions inherited from QObject
- 14 public functions inherited from 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) |
Статические публичные члены
| const QMetaObject | staticMetaObject |
Защищенные функции
| void | initStyleOption(QStyleOptionTabWidgetFrame *option) const |
| void | setTabBar(QTabBar *tb) |
| virtual void | tabInserted(int index) |
| virtual void | tabRemoved(int index) |
Переопределенные защищенные функции
| virtual void | changeEvent(QEvent *ev) override |
| virtual bool | event(QEvent *ev) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | showEvent(QShowEvent *) override |
- 35 protected functions inherited from QWidget
- 9 protected functions inherited from QObject
- 1 protected function inherited from QPaintDevice
Дополнительные унаследованные члены
- 1 protected slot inherited from 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
Если 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) |
См. также TabPosition.
tabShape : TabShape
Это свойство содержит форму вкладок в этом виджете вкладок.
Возможные значения для этого свойства — QTabWidget::Rounded (по умолчанию) или QTabWidget::Triangular.
Функции доступа:
| QTabWidget::TabShape | tabShape() const |
| void | setTabShape(QTabWidget::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 = nullptr)
Конструктор виджета вкладок с родителем parent.
[virtual] QTabWidget::~QTabWidget()
Деструктор виджета вкладок.
int QTabWidget::addTab(QWidget *page, const QString &label)
Добавляет вкладку с заданной page и label к виджету вкладок и возвращает индекс вкладки на панели вкладок. Владение page передается QTabWidget.
Если метка вкладки label содержит амперсанд, буква, следующая за амперсандом, используется в качестве сочетания клавиш для вкладки, например, если метка — "Обзор&", то 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().
void QTabWidget::clear()
Удаляет все страницы, но не удаляет их. Вызов этого метода эквивалентен вызову removeTab() до тех пор, пока виджет вкладок не станет пустым.
QWidget *QTabWidget::cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
Возвращает виджет, отображаемый в углу виджета вкладок, или 0.
См. также setCornerWidget().
[signal] void QTabWidget::currentChanged(int index)
Этот сигнал генерируется всякий раз, когда индекс текущей страницы изменяется. Параметр — новый индекс текущей страницы index, или -1, если новой страницы нет (например, если в QTabWidget нет виджетов).
Примечание: Сигнал-уведомление для свойства currentIndex.
См. также currentWidget() и currentIndex.
QWidget *QTabWidget::currentWidget() const
Возвращает указатель на страницу, которая в данный момент отображается в диалоговом окне вкладок. Диалоговое окно вкладок делает всё возможное, чтобы это значение никогда не было 0 (но при достаточно сильных усилиях, оно может им стать).
См. также currentIndex() и setCurrentWidget().
[override virtual protected] bool QTabWidget::event(QEvent *ev)
Переопределено из QWidget::event().
[override virtual] bool QTabWidget::hasHeightForWidth() const
Переопределено из QWidget::hasHeightForWidth().
[override 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 и возвращает индекс вставленной вкладки в панели вкладок. Владение 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)
Это перегруженный метод.
Вставляет вкладку с заданным label, page и icon в виджет вкладок по указанному index и возвращает индекс вставленной вкладки в панели вкладок. Владение page передаётся виджету QTabWidget.
Этот метод идентичен методу insertTab(), но с дополнительным параметром icon.
bool QTabWidget::isTabEnabled(int index) const
Возвращает true если страница в позиции index включена; в противном случае возвращает false.
См. также setTabEnabled() и QWidget::isEnabled().
[override virtual protected] void QTabWidget::keyPressEvent(QKeyEvent *e)
Переопределено из QWidget::keyPressEvent().
[override virtual] QSize QTabWidget::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
Возвращает подходящий минимальный размер для виджета вкладок.
[override virtual protected] void QTabWidget::paintEvent(QPaintEvent *event)
Переопределено из QWidget::paintEvent().
Отрисовывает панель вкладок виджета вкладок в ответ на событие отрисовки event.
void QTabWidget::removeTab(int index)
Удаляет вкладку в позиции index из этого набора виджетов. Виджет страницы при этом не удаляется.
См. также addTab() и insertTab().
[override 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().
void 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)
Устанавливает текст справки What's This для страницы по индексу index на text.
Эта функция была добавлена в Qt 4.1.
См. также tabWhatsThis().
[override virtual protected] void QTabWidget::showEvent(QShowEvent *)
Переопределено из QWidget::showEvent().
[override 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
Возвращает текст справки What's This для страницы по индексу index или пустую строку, если текст справки не установлен.
Эта функция была добавлена в Qt 4.1.
См. также setTabWhatsThis().
QWidget *QTabWidget::widget(int index) const
Возвращает страницу вкладки по индексу index или 0, если index выходит за пределы диапазона.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qtabwidget.html