Spec-Zone.ru › Qt 6.1

Класс QTabBar

Класс QTabBar предоставляет панель вкладок, например, для использования в диалоговых окнах с вкладками. Подробнее...

Заголовок: #include <QTabBar>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QWidget
  • Список всех членов, включая унаследованные

Типы

Перечисление ButtonPosition { LeftSide, RightSide }
Перечисление SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab }
Перечисление Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, TriangularNorth, …, TriangularEast }

Свойства

  • autoHide : bool
  • changeCurrentOnDrag : bool
  • count : const int
  • currentIndex : int
  • documentMode : bool
  • drawBase : bool
  • elideMode : Qt::TextElideMode
  • expanding : bool
  • iconSize : QSize
  • movable : bool
  • selectionBehaviorOnRemove : SelectionBehavior
  • shape : Shape
  • tabsClosable : bool
  • usesScrollButtons : bool

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

QTabBar(QWidget *parent = nullptr)
virtual ~QTabBar()
QString accessibleTabName(int index) const
int addTab(const QString &text)
int addTab(const QIcon &icon, const QString &text)
bool autoHide() const
bool changeCurrentOnDrag() const
int count() const
int currentIndex() const
bool documentMode() const
bool drawBase() const
Qt::TextElideMode elideMode() const
bool expanding() const
QSize iconSize() const
int insertTab(int index, const QString &text)
int insertTab(int index, const QIcon &icon, const QString &text)
bool isMovable() const
bool isTabEnabled(int index) const
bool isTabVisible(int index) const
void moveTab(int from, int to)
void removeTab(int index)
QTabBar::SelectionBehavior selectionBehaviorOnRemove() const
void setAccessibleTabName(int index, const QString &name)
void setAutoHide(bool hide)
void setChangeCurrentOnDrag(bool change)
void setDocumentMode(bool set)
void setDrawBase(bool drawTheBase)
void setElideMode(Qt::TextElideMode mode)
void setExpanding(bool enabled)
void setIconSize(const QSize &size)
void setMovable(bool movable)
void setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior)
void setShape(QTabBar::Shape shape)
void setTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget)
void setTabData(int index, const QVariant &data)
void setTabEnabled(int index, bool enabled)
void setTabIcon(int index, const QIcon &icon)
void setTabText(int index, const QString &text)
void setTabTextColor(int index, const QColor &color)
void setTabToolTip(int index, const QString &tip)
void setTabVisible(int index, bool visible)
void setTabWhatsThis(int index, const QString &text)
void setTabsClosable(bool closable)
void setUsesScrollButtons(bool useButtons)
QTabBar::Shape shape() const
int tabAt(const QPoint &position) const
QWidget * tabButton(int index, QTabBar::ButtonPosition position) const
QVariant tabData(int index) const
QIcon tabIcon(int index) const
QRect tabRect(int index) const
QString tabText(int index) const
QColor tabTextColor(int index) const
QString tabToolTip(int index) const
QString tabWhatsThis(int index) const
bool tabsClosable() const
bool usesScrollButtons() const

Реализованные общедоступные функции

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Открытые слоты

void setCurrentIndex(int index)

Сигналы

void currentChanged(int index)
void tabBarClicked(int index)
void tabBarDoubleClicked(int index)
void tabCloseRequested(int index)
void tabMoved(int from, int to)

Protected Functions

virtual void initStyleOption(QStyleOptionTab *option, int tabIndex) const
virtual QSize minimumTabSizeHint(int index) const
virtual void tabInserted(int index)
virtual void tabLayoutChange()
virtual void tabRemoved(int index)
virtual QSize tabSizeHint(int index) const

Реализованные защищенные функции

virtual void changeEvent(QEvent *event) override
virtual bool event(QEvent *event) override
virtual void hideEvent(QHideEvent *) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *) override
virtual void resizeEvent(QResizeEvent *) override
virtual void showEvent(QShowEvent *) override
virtual void timerEvent(QTimerEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

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

QTabBar прост в использовании; он рисует вкладки с помощью одного из предопределенных видов и генерирует сигнал, когда вкладка выбрана. Его можно наследовать для настройки внешнего вида.

Каждая вкладка имеет текст вкладки, необязательный иконку вкладки, необязательный подсказку вкладки, необязательный справочный текст вкладки и необязательные данные вкладки.

Атрибуты вкладок можно изменить с помощью setTabText(), setTabIcon(), setTabToolTip(), setTabWhatsThis и setTabData(). Каждая вкладка может быть включена или выключена индивидуально с помощью setTabEnabled().

Каждая вкладка может отображать текст в разном цвете. Текущий цвет текста для вкладки можно найти с помощью функции tabTextColor(). Установите цвет текста для конкретной вкладки с помощью setTabTextColor().

Вкладки добавляются с помощью addTab() или вставляются в определенные позиции с помощью insertTab(). Общее количество вкладок задается свойством count(). Вкладки можно удалить из панели вкладок с помощью removeTab(). Объединение removeTab() и insertTab() позволяет перемещать вкладки в разные позиции.

Свойство shape определяет внешний вид вкладок. Выбор формы — дело вкуса, хотя диалоговые окна вкладок (для настроек и т. п.) неизменно используют RoundedNorth. Элементы управления вкладками в окнах, отличных от диалоговых, почти всегда используют либо RoundedSouth, либо TriangularSouth. Многие электронные таблицы и другие элементы управления вкладками, в которых все страницы в основном похожи, используют TriangularSouth, в то время как RoundedSouth используется в основном, когда страницы разные (например, многостраничная палитра инструментов). По умолчанию в QTabBar используется RoundedNorth.

Самая важная часть API QTabBar — сигнал currentChanged(). Он генерируется всякий раз, когда изменяется текущая вкладка (даже при запуске, когда текущая вкладка меняется с «нет»). Также есть слот setCurrentIndex(), который можно использовать для выбора вкладки программно. Функция currentIndex() возвращает индекс текущей вкладки, count хранит количество вкладок.

QTabBar создает автоматические мнемонические клавиши по аналогии с QAbstractButton; например, если метка вкладки — «&Графика», Alt+G становится клавишей быстрого доступа для переключения на эту вкладку.

Следующие виртуальные функции могут потребовать реализации для настройки внешнего вида или хранения дополнительных данных для каждой вкладки:

  • tabSizeHint() вычисляет размер вкладки.
  • tabInserted() сообщает о добавлении новой вкладки.
  • tabRemoved() сообщает об удалении вкладки.
  • tabLayoutChange() сообщает о перерасчете расположения вкладок.
  • paintEvent() рисует все вкладки.

Для подклассов вам также могут потребоваться функции tabRect(), которые возвращают визуальную геометрию одной вкладки.

Screenshot of a Fusion style tab bar Панель вкладок, показанная в стиле виджета Fusion.
Screenshot of a truncated Fusion tab bar Усеченная панель вкладок, показанная в стиле виджета Fusion.

См. также QTabWidget.

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

перечисление QTabBar::ButtonPosition

Это перечисление типов, которое перечисляет расположение виджета на вкладке.

Константа Значение Описание
QTabBar::LeftSide 0 Левая сторона вкладки.
QTabBar::RightSide 1 Правая сторона вкладки.

перечисление QTabBar::SelectionBehavior

Это перечисление типов, которое перечисляет поведение QTabBar при удалении вкладки, при этом удаляемая вкладка является текущей.

Константа Значение Описание
QTabBar::SelectLeftTab 0 Выбрать вкладку слева от удаляемой.
QTabBar::SelectRightTab 1 Выбрать вкладку справа от удаляемой.
QTabBar::SelectPreviousTab 2 Выбрать ранее выбранную вкладку.

перечисление QTabBar::Shape

Это перечисление типов, которое перечисляет встроенные формы, поддерживаемые QTabBar. Считайте их подсказками, так как некоторые стили могут не отображать некоторые из форм. Однако позиция должна соблюдаться.

Константа Значение Описание
QTabBar::RoundedNorth 0 Обычный закругленный вид над страницами
QTabBar::RoundedSouth 1 Обычный закругленный вид под страницами
QTabBar::RoundedWest 2 Обычный закругленный вид слева от страниц
QTabBar::RoundedEast 3 Обычный закругленный вид справа от страниц
QTabBar::TriangularNorth 4 Треугольные вкладки над страницами.
QTabBar::TriangularSouth 5 Треугольные вкладки, аналогичные используемым в электронных таблицах Excel, например.
QTabBar::TriangularWest 6 Треугольные вкладки слева от страниц.
QTabBar::TriangularEast 7 Треугольные вкладки справа от страниц.

Документация свойств

[since 5.4] autoHide : bool

Если значение true, панель вкладок автоматически скрывается, когда она содержит менее 2 вкладок.

По умолчанию значение этого свойства равно false.

Это свойство было введено в Qt 5.4.

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

bool autoHide() const
void setAutoHide(bool hide)

См. также QWidget::visible.

[since 5.4] changeCurrentOnDrag : bool

Если значение true, текущая вкладка автоматически изменяется при перетаскивании над панелью вкладок.

Примечание: Для работы этой функции также необходимо установить свойство acceptDrops в значение true.

По умолчанию значение этого свойства равно false.

Это свойство было введено в Qt 5.4.

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

bool changeCurrentOnDrag() const
void setChangeCurrentOnDrag(bool change)

[read-only] count : const int

Это свойство содержит количество вкладок на панели вкладок.

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

int count() const

currentIndex : int

Это свойство содержит индекс видимой вкладки на панели вкладок.

Текущий индекс равен -1, если текущая вкладка отсутствует.

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

int currentIndex() const
void setCurrentIndex(int index)

Сигнал уведомления:

void currentChanged(int index)

documentMode : bool

Это свойство указывает, отображается ли панель вкладок в режиме, подходящем для основного окна.

Это свойство используется в качестве подсказки для стилей, чтобы отобразить вкладки по-другому, чем они обычно отображаются в виджете вкладок. В macOS это будет похоже на вкладки в Safari или терминале Sierra.

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

bool documentMode() const
void setDocumentMode(bool set)

См. также QTabWidget::documentMode.

drawBase : bool

Определяет, должна ли панель вкладок рисовать свою базу.

Если значение true, то QTabBar рисует базу относительно перекрытий стилей. В противном случае рисуются только вкладки.

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

bool drawBase() const
void setDrawBase(bool drawTheBase)

См. также QStyle::pixelMetric(), QStyle::PM_TabBarBaseOverlap и QStyleOptionTabBarBase.

elideMode : Qt::TextElideMode

способ обрезки текста на панели вкладок

Это свойство управляет тем, как элементы обрезаются, когда нет достаточно места для их отображения при заданном размере панели вкладок.

По умолчанию значение зависит от стиля.

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

Qt::TextElideMode elideMode() const
void setElideMode(Qt::TextElideMode mode)

См. также QTabWidget::elideMode, usesScrollButtons и QStyle::SH_TabBar_ElideMode.

expanding : bool

При значении expanding = true, QTabBar будет расширять вкладки, чтобы использовать свободное пространство.

По умолчанию значение равно true.

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

bool expanding() const
void setExpanding(bool enabled)

См. также QTabWidget::documentMode.

iconSize : QSize

Это свойство содержит размер значков на панели вкладок.

Значение по умолчанию зависит от стиля. iconSize — максимальный размер; значки меньшего размера не увеличиваются.

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

QSize iconSize() const
void setIconSize(const QSize &size)

См. также QTabWidget::iconSize.

movable : bool

Это свойство указывает, могут ли пользователи перемещать вкладки в области панели вкладок.

По умолчанию это свойство равно false;

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

bool isMovable() const
void setMovable(bool movable)

selectionBehaviorOnRemove : SelectionBehavior

Какая вкладка должна быть установлена в качестве текущей при вызове removeTab, если удаляемая вкладка также является текущей?

По умолчанию значение равно SelectRightTab.

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

QTabBar::SelectionBehavior selectionBehaviorOnRemove() const
void setSelectionBehaviorOnRemove(QTabBar::SelectionBehavior behavior)

См. также removeTab().

shape : Shape

Это свойство содержит форму вкладок на панели вкладок.

Возможные значения для этого свойства описаны в перечислении Shape.

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

QTabBar::Shape shape() const
void setShape(QTabBar::Shape shape)

tabsClosable : bool

Это свойство указывает, должна ли панель вкладок размещать кнопки закрытия на каждой вкладке.

Если tabsClosable установлено в true, на вкладке появится кнопка закрытия слева или справа, в зависимости от стиля. При нажатии на кнопку будет выпущен сигнал tabCloseRequested.

По умолчанию значение равно false.

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

bool tabsClosable() const
void setTabsClosable(bool closable)

См. также setTabButton() и tabRemoved().

usesScrollButtons : bool

Это свойство указывает, должна ли панель вкладок использовать кнопки для прокрутки вкладок, когда их много.

Когда на панели вкладок слишком много вкладок для ее размера, панель вкладок может либо расширить свой размер, либо добавить кнопки, которые позволяют прокручивать вкладки.

По умолчанию значение зависит от стиля.

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

bool usesScrollButtons() const
void setUsesScrollButtons(bool useButtons)

См. также elideMode, QTabWidget::usesScrollButtons и QStyle::SH_TabBar_PreferNoArrows.

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

QTabBar::QTabBar(QWidget *parent = nullptr)

Создаёт новую вкладку с заданным parent.

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

Этот сигнал испускается, когда текущая вкладка на панели вкладок изменяется. Новая текущая вкладка имеет заданный index или -1, если новой нет (например, если на вкладке QTabBar нет вкладок).

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

[signal, since 5.2] void QTabBar::tabBarClicked(int index)

Этот сигнал испускается, когда пользователь нажимает на вкладку по индексу index.

index — индекс нажатой вкладки или -1, если ни одна вкладка не находится под курсором.

Данная функция была добавлена в Qt 5.2.

[signal, since 5.2] void QTabBar::tabBarDoubleClicked(int index)

Этот сигнал испускается, когда пользователь дважды нажимает на вкладку по индексу index.

index — индекс нажатой вкладки или -1, если ни одна вкладка не находится под курсором.

Данная функция была добавлена в Qt 5.2.

[signal] void QTabBar::tabCloseRequested(int index)

Этот сигнал испускается, когда нажимается кнопка закрытия вкладки. index — индекс вкладки, которая должна быть удалена.

См. также setTabsClosable().

[signal] void QTabBar::tabMoved(int from, int to)

Этот сигнал испускается, когда вкладка с индексом from перемещается на позицию с индексом to.

Примечание: QTabWidget автоматически переместит страницу, когда этот сигнал испустится из его панели вкладок.

См. также moveTab().

[virtual] QTabBar::~QTabBar()

Уничтожает панель вкладок.

QString QTabBar::accessibleTabName(int index) const

Возвращает accessibleName вкладки по индексу index или пустую строку, если index находится вне диапазона.

См. также setAccessibleTabName().

int QTabBar::addTab(const QString &text)

Добавляет новую вкладку с текстом text. Возвращает индекс новой вкладки.

int QTabBar::addTab(const QIcon &icon, const QString &text)

Это перегруженная функция.

Добавляет новую вкладку с иконкой icon и текстом text. Возвращает индекс новой вкладки.

[override virtual protected] void QTabBar::changeEvent(QEvent *event)

Переопределяет: QWidget::changeEvent(QEvent *event).

[override virtual protected] bool QTabBar::event(QEvent *event)

Переопределяет: QWidget::event(QEvent *event).

[override virtual protected] void QTabBar::hideEvent(QHideEvent *)

Переопределяет: QWidget::hideEvent(QHideEvent *event).

[virtual protected] void QTabBar::initStyleOption(QStyleOptionTab *option, int tabIndex) const

Инициализирует option значениями из вкладки по индексу tabIndex. Этот метод полезен для подклассов, когда им нужен QStyleOptionTab, но они не хотят заполнять всю информацию самостоятельно.

См. также QStyleOption::initFrom() и QTabWidget::initStyleOption().

int QTabBar::insertTab(int index, const QString &text)

Вставляет новую вкладку с текстом text на позицию index. Если index вне диапазона, новая вкладка добавляется в конец. Возвращает индекс новой вкладки.

int QTabBar::insertTab(int index, const QIcon &icon, const QString &text)

Это перегруженная функция.

Вставляет новую вкладку с иконкой icon и текстом text на позицию index. Если index вне диапазона, новая вкладка добавляется в конец. Возвращает индекс новой вкладки.

Если QTabBar был пуст до вызова этой функции, вставленная вкладка становится текущей вкладкой.

Вставка новой вкладки на индекс, меньший или равный текущему, увеличит текущий индекс, но сохранит текущую вкладку.

bool QTabBar::isTabEnabled(int index) const

Возвращает true если вкладка по индексу index включена; в противном случае возвращает false.

[since 5.15] bool QTabBar::isTabVisible(int index) const

Возвращает true, если вкладка по индексу index видима; в противном случае возвращает false.

Данная функция была добавлена в Qt 5.15.

[override virtual protected] void QTabBar::keyPressEvent(QKeyEvent *event)

Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).

[override virtual] QSize QTabBar::minimumSizeHint() const

Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.

[virtual protected, since 5.0] QSize QTabBar::minimumTabSizeHint(int index) const

Возвращает минимальный размер вкладки по индексу index.

Данная функция была добавлена в Qt 5.0.

[override virtual protected] void QTabBar::mouseDoubleClickEvent(QMouseEvent *event)

Переопределяет: QWidget::mouseDoubleClickEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mouseMoveEvent(QMouseEvent *event)

Переопределяет: QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mousePressEvent(QMouseEvent *event)

Переопределяет: QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QTabBar::mouseReleaseEvent(QMouseEvent *event)

Переопределяет: QWidget::mouseReleaseEvent(QMouseEvent *event).

void QTabBar::moveTab(int from, int to)

Перемещает элемент с индексом from на позицию to.

См. также tabMoved() и tabLayoutChange().

[override virtual protected] void QTabBar::paintEvent(QPaintEvent *)

Переопределяет: QWidget::paintEvent(QPaintEvent *event).

void QTabBar::removeTab(int index)

Удаляет вкладку по индексу index.

См. также SelectionBehavior.

[override virtual protected] void QTabBar::resizeEvent(QResizeEvent *)

Переопределяет: QWidget::resizeEvent(QResizeEvent *event).

void QTabBar::setAccessibleTabName(int index, const QString &name)

Устанавливает accessibleName вкладки по индексу index на name.

См. также accessibleTabName().

void QTabBar::setTabButton(int index, QTabBar::ButtonPosition position, QWidget *widget)

Устанавливает widget на вкладке index. Виджет размещается слева или справа в зависимости от position.

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

Панель вкладок получит владение виджетом, и поэтому все виджеты, установленные здесь, будут удалены панелью вкладок при её уничтожении, если вы не переродите виджет отдельно после установки другого виджета (или nullptr).

См. также tabButton() и tabsClosable().

void QTabBar::setTabData(int index, const QVariant &data)

Устанавливает данные вкладки с позицией index на data.

См. также tabData().

void QTabBar::setTabEnabled(int index, bool enabled)

Если enabled имеет значение true, то вкладка с позицией index активируется; в противном случае элемент с позицией index отключается.

См. также isTabEnabled().

void QTabBar::setTabIcon(int index, const QIcon &icon)

Устанавливает значок вкладки с позицией index на icon.

См. также tabIcon().

void QTabBar::setTabText(int index, const QString &text)

Устанавливает текст вкладки с позицией index на text.

См. также tabText().

void QTabBar::setTabTextColor(int index, const QColor &color)

Устанавливает цвет текста вкладки с заданным index на указанный color.

Если указан недопустимый цвет, вкладка будет использовать роль foreground панели QTabBar вместо этого.

См. также tabTextColor().

void QTabBar::setTabToolTip(int index, const QString &tip)

Устанавливает всплывающую подсказку вкладки с позицией index на tip.

См. также tabToolTip().

void QTabBar::setTabVisible(int index, bool visible)

Если visible имеет значение true, то вкладка с позицией index отображается, в противном случае она скрывается.

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

См. также isTabVisible().

void QTabBar::setTabWhatsThis(int index, const QString &text)

Устанавливает текст справки What's This для вкладки с позицией index на text.

См. также tabWhatsThis().

void QTabBar::showEvent(QShowEvent *)

Переопределяет: QWidget::showEvent(QShowEvent *event).

QSize QTabBar::sizeHint() const

Переопределяет функцию доступа к свойству: QWidget::sizeHint.

int QTabBar::tabAt(const QPoint &position) const

Возвращает индекс вкладки, которая покрывает position, или -1, если ни одна вкладка не покрывает position;

QWidget *QTabBar::tabButton(int index, QTabBar::ButtonPosition position) const

Возвращает виджет, установленный для вкладки index и position, или nullptr если такой не установлен.

См. также setTabButton().

QVariant QTabBar::tabData(int index) const

Возвращает данные вкладки с позицией index или нулевой вариант, если index находится вне диапазона.

См. также setTabData().

QIcon QTabBar::tabIcon(int index) const

Возвращает значок вкладки с позицией index или пустой значок, если index находится вне диапазона.

См. также setTabIcon().

void QTabBar::tabInserted(int index)

Этот виртуальный обработчик вызывается после добавления или вставки новой вкладки в позицию index.

См. также tabRemoved().

void QTabBar::tabLayoutChange()

Этот виртуальный обработчик вызывается всякий раз, когда изменяется макет вкладок.

См. также tabRect().

QRect QTabBar::tabRect(int index) const

Возвращает визуальный прямоугольник вкладки с позицией index, или пустой прямоугольник, если index скрыт или находится вне диапазона.

void QTabBar::tabRemoved(int index)

Этот виртуальный обработчик вызывается после удаления вкладки из позиции index.

См. также tabInserted().

QSize QTabBar::tabSizeHint(int index) const

Возвращает размер подсказки для вкладки с позицией index.

QString QTabBar::tabText(int index) const

Возвращает текст вкладки с позицией index, или пустую строку, если index находится вне диапазона.

См. также setTabText().

QColor QTabBar::tabTextColor(int index) const

Возвращает цвет текста вкладки с заданным index, или недопустимый цвет, если index находится вне диапазона.

См. также setTabTextColor().

QString QTabBar::tabToolTip(int index) const

Возвращает всплывающую подсказку вкладки с позицией index, или пустую строку, если index находится вне диапазона.

См. также setTabToolTip().

QString QTabBar::tabWhatsThis(int index) const

Возвращает текст справки What's This для вкладки с позицией index, или пустую строку, если index находится вне диапазона.

См. также setTabWhatsThis().

void QTabBar::timerEvent(QTimerEvent *event)

Переопределяет: QObject::timerEvent(QTimerEvent *event).

void QTabBar::wheelEvent(QWheelEvent *event)

Переопределяет: QWidget::wheelEvent(QWheelEvent *event).

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtabbar.html

Spec-Zone.ru

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