Класс 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 |
Переопределенные открытые функции
| виртуальный bool | hasHeightForWidth() const override |
| виртуальный int | heightForWidth(int width) const override |
| виртуальный QSize | minimumSizeHint() const override |
| виртуальный QSize | sizeHint() const override |
- 214 общедоступных функций, унаследованных от QWidget
- 34 общедоступных функций, унаследованных от 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) 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 |
- 35 защищённых функций, унаследованных от QWidget
- 9 защищённых функций, унаследованных от QObject
- 1 защищённая функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 1 общедоступная переменная, унаследованная от QObject
- 5 статические общедоступные члены, унаследованные от QWidget
- 10 статических общедоступных членов, унаследованных от QObject
- 1 защищённый слот, унаследованный от QWidget
- 2 защищённые переменные, унаследованные от QObject
- 1 защищённый тип, унаследованный от QPaintDevice
Подробное описание
Класс 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.
Функции доступа:
| 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 вкладки содержит амперсанд, буква, следующая за амперсандом, используется в качестве сочетания клавиш для вкладки, например, если метка — «Bro&wse», то Alt+W становится сочетанием клавиш, которое переместит фокус на эту вкладку.
Примечание: Если вы вызываете addTab() после show(), система макета попытается скорректировать изменения в иерархии виджетов, что может привести к мерцанию. Чтобы предотвратить это, вы можете установить свойство QWidget::updatesEnabled в ложь перед внесением изменений; не забудьте установить свойство в истинное значение после внесения изменений, чтобы виджет снова получал события рисования.
См. также insertTab().
int QTabWidget::addTab(QWidget *page, const QIcon &icon, const QString &label)
Это перегруженный метод.
Добавляет вкладку с заданной страницей, иконкой и меткой в виджет вкладок и возвращает индекс вкладки в панели вкладок. Владение страницей передаётся QTabWidget.
Этот метод эквивалентен методу addTab(), но с дополнительной иконкой.
[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)
Вставляет вкладку с заданной меткой и страницей в виджет вкладок по указанному индексу и возвращает индекс вставленной вкладки в панели вкладок. Владение страницей передаётся QTabWidget.
Метка отображается на вкладке и может изменяться в зависимости от конфигурации виджета вкладок.
Если метка вкладки содержит амперсанд, буква, следующая за амперсандом, используется в качестве сочетания клавиш для вкладки, например, если метка — "Обзор", то сочетание Alt+W станет сочетанием клавиш для перевода фокуса на эту вкладку.
Если index находится вне диапазона, вкладка просто добавляется в конец. В противном случае она вставляется в указанную позицию.
Если QTabWidget был пуст перед вызовом этого метода, новая страница станет текущей страницей. Вставка новой вкладки в индекс, меньший или равный текущему индексу, увеличит текущий индекс, но сохранит текущую страницу.
Примечание: Если вы вызываете insertTab() после show(), система макета попытается скорректировать изменения в иерархии виджетов и может вызвать мерцание. Чтобы предотвратить это, вы можете установить свойство QWidget::updatesEnabled в значение false перед изменениями; не забудьте установить свойство в значение true, когда изменения будут выполнены, чтобы виджет снова получал события рисования.
См. также addTab().
int QTabWidget::insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)
Это перегруженный метод.
Вставляет вкладку с заданной меткой, страницей и иконкой в виджет вкладок по указанному индексу и возвращает индекс вставленной вкладки в панели вкладок. Владение страницей передаётся QTabWidget.
Этот метод эквивалентен методу insertTab(), но с дополнительной иконкой.
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)
Устанавливает заданный виджет для отображения в указанном углу виджета вкладок. Геометрия виджета определяется на основе его sizeHint() и стиля.
Используется только горизонтальная часть угла.
Передача 0 скрывает виджет в углу.
Любой ранее установленный виджет угла скрывается.
Все установленные здесь виджеты будут удалены виджетом вкладок при его уничтожении, если вы не переродите виджет отдельно после установки другого виджета угла (или 0).
Примечание: Виджеты углов предназначены для позиций вкладок Север и Юг; другие ориентации, как известно, не работают должным образом.
См. также cornerWidget() и setTabPosition().
[slot] void QTabWidget::setCurrentWidget(QWidget *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() внутри, а не хранит отдельный флаг.
END_OF_DOCUMENT_MARKERОбратите внимание, что даже отключенная вкладка/страница может быть видимой. Если страница уже видна, QTabWidget её не спрячет; если все страницы отключены, QTabWidget отобразит одну из них.
См. также isTabEnabled() и QWidget::setEnabled().
void QTabWidget::setTabIcon(int index, const QIcon &icon)
Это перегруженный метод.
Устанавливает icon для вкладки на позиции index.
См. также tabIcon().
void QTabWidget::setTabText(int index, const QString &label)
Определяет новое 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/archives/qt-5.11/qtabwidget.html