Spec-Zone.ru › Qt 5.14

Класс QTabWidget

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

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

Типы

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

Свойства

  • количество : const int
  • текущийИндекс : int
  • режимДокумента : bool
  • режимУсечения : Qt::TextElideMode
  • размерИконки : QSize
  • перемещаемые : bool
  • автоскрытиеПанелиВкладок : bool
  • положениеВкладок : TabPosition
  • формаВкладок : TabShape
  • вкладкиЗакрываются : bool
  • использоватьКнопкиПрокрутки : bool

Публичные функции

QTabWidget(QWidget *parent = nullptr)
virtual ~QTabWidget()
int добавить вкладку(QWidget *page, const QString &label)
int добавить вкладку(QWidget *page, const QIcon &icon, const QString &label)
void очистить()
QWidget * уголковыйВиджет(Qt::Corner corner = Qt::TopRightCorner) const
int количество() const
int текущийИндекс() const
QWidget * текущийВиджет() const
bool режимДокумента() const
Qt::TextElideMode режимУсечения() const
QSize размерИконки() const
int индекс(QWidget *w) const
int вставитьВкладку(int index, QWidget *page, const QString &label)
int вставитьВкладку(int index, QWidget *page, const QIcon &icon, const QString &label)
bool перемещаемые() const
bool включенаВкладка(int index) const
void удалитьВкладку(int index)
void установитьУголковыйВиджет(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
void установитьРежимДокумента(bool set)
void установитьРежимУсечения(Qt::TextElideMode)
void установитьРазмерИконки(const QSize &size)
void установитьПеремещаемые(bool movable)
void установитьАвтоскрытиеПанелиВкладок(bool enabled)
void включитьВкладку(int index, bool enable)
void установитьИконкуВкладки(int index, const QIcon &icon)
void установитьПоложениеВкладок(QTabWidget::TabPosition)
void установитьФормуВкладок(QTabWidget::TabShape s)
void установитьТекстВкладки(int index, const QString &label)
void установитьПодсказкуВкладки(int index, const QString &tip)
void установитьWhatsThisВкладки(int index, const QString &text)
void установитьЗакрываемыеВкладки(bool closeable)
void установитьИспользованиеКнопокПрокрутки(bool useButtons)
QTabBar * панельВкладок() const
bool автоскрытиеПанелиВкладок() const
QIcon иконкаВкладки(int index) const
QTabWidget::TabPosition положениеВкладок() const
QTabWidget::TabShape формаВкладок() const
QString текстВкладки(int index) const
QString подсказкаВкладки(int index) const
QString справкаВкладки(int index) const
bool вкладкиЗакрываются() const
bool использоватьКнопкиПрокрутки() const
QWidget * вижет(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)

Signals

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)

Reimplemented 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

Detailed Description

Виджет QTabWidget предоставляет панель вкладок (см. 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 и Пример диалога вкладок.

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

перечисление 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.

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

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

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

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

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

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

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

[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().

[virtual] QTabWidget::~QTabWidget()

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

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

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

Если 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

Возвращает виджет, отображаемый в углу виджета вкладок или 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(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.

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

Если label вкладки содержит амперсанд (&), символ, следующий за амперсандом, используется как сочетание клавиш для вкладки, например, если метка — "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(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.

Передача 0 скрывает виджет в углу.

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

Все виджеты, установленные здесь, будут удалены виджетом вкладки при его уничтожении, если вы не переродите виджет отдельно после установки другого виджета угла (или 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)

Устанавливает иконку для вкладки в позиции 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().

[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

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

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

См. также 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-5.14/qtabwidget.html

Spec-Zone.ru

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