Spec-Zone.ru › Qt 5.6

Класс QTabWidget

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

Заголовок: #include <QTabWidget>
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
  • 58 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

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

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

virtual bool hasHeightForWidth() const
virtual int heightForWidth(int width) const
virtual QSize minimumSizeHint() const
virtual QSize sizeHint() const
  • 211 публичных функций, унаследованных от QWidget
  • 31 публичная функция, унаследованная от QObject
  • 14 публичных функций, унаследованных от QPaintDevice

Публичные слоты

void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)
  • 19 публичных слотов, унаследованных от QWidget
  • 1 публичный слот, унаследованный от QObject

Сигналы

void currentChanged(int index)
void tabBarClicked(int index)
void tabBarDoubleClicked(int index)
void tabCloseRequested(int index)
  • 3 сигнала, унаследованные от QWidget
  • 2 сигнала, унаследованные от QObject

Защищённые функции

void initStyleOption(QStyleOptionTabWidgetFrame *option) const
void setTabBar(QTabBar *tb)
virtual void tabInserted(int index)
virtual void tabRemoved(int index)

Переопределённые защищённые функции

virtual void changeEvent(QEvent *ev)
virtual bool event(QEvent *ev)
virtual void keyPressEvent(QKeyEvent *e)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *e)
virtual void showEvent(QShowEvent *)
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

Дополнительные унаследованные члены

  • 5 статических публичных членов, унаследованных от QWidget
  • 11 статических публичных членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget

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

Класс 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 (большая часть области, организующей отдельные страницы).

Screenshot of a Windows Vista style tab widget Screenshot of a Macintosh style tab widget Screenshot of a Fusion style tab widget
Виджет вкладок в стиле Windows Vista. Виджет вкладок в стиле Macintosh. Виджет вкладок в стиле Fusion.

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

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

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

Примечание: Если вы вызываете 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 и возвращает индекс вставленной вкладки в панели вкладок.

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

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

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

[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

Возвращает текст справки 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.6/qtabwidget.html

Spec-Zone.ru

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