Класс QTabBar
Класс QTabBar предоставляет панель вкладок, например, для использования в диалогах с вкладками. Подробнее...
| Заголовок: | #include <QTabBar> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
Типы публичного доступа
| Перечисление | ButtonPosition { LeftSide, RightSide } |
| Перечисление | SelectionBehavior { SelectLeftTab, SelectRightTab, SelectPreviousTab } |
| Перечисление | Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, TriangularNorth, …, TriangularEast } |
Свойства
|
|
Публичные функции
| 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 |
| 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) |
| 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 | 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
| 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 |
Reimplemented Protected Functions
| 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 | 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 проста в использовании; она рисует вкладки, используя один из предопределённых видов, и излучает сигнал, когда вкладка выбрана. Она может быть расширена для настройки внешнего вида.
Каждая вкладка имеет текст, необязательный значок, необязательный подсказку, необязательный WhatsThis и необязательные данные. Атрибуты вкладок можно изменить с помощью 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(), которые возвращают визуальную геометрию одной вкладки.
| Панель вкладок, показанная в стиле виджета Fusion. | |
| Усечённая панель вкладок, показанная в стиле виджета Fusion. |
См. такжеQTabWidget.
Документация типов членов
перечисление QTabBar::ButtonPosition
Это перечисление типов, перечисляющее местоположение виджета на вкладке.
| Константа | Значение | Описание |
|---|---|---|
QTabBar::LeftSide |
0 |
Левая сторона вкладки. |
QTabBar::RightSide |
1 |
Правая сторона вкладки. |
Это перечисление было введено или изменено в Qt 4.5.
перечисление QTabBar::SelectionBehavior
Это перечисление типов, перечисляющее поведение QTabBar, когда вкладка удалена, а удаляемая вкладка является также текущей.
| Константа | Значение | Описание |
|---|---|---|
QTabBar::SelectLeftTab |
0 |
Выберите вкладку слева от удаляемой. |
QTabBar::SelectRightTab |
1 |
Выберите вкладку справа от удаляемой. |
QTabBar::SelectPreviousTab |
2 |
Выберите ранее выбранную вкладку. |
Это перечисление было введено или изменено в Qt 4.5.
перечисление 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 |
Треугольные вкладки справа от страниц. |
Документация по свойствам
autoHide : bool
Если true, таб-бар автоматически скрывается, если содержит менее 2 вкладок.
По умолчанию это свойство равно false.
Это свойство было введено в Qt 5.4.
Функции доступа:
| bool | autoHide() const |
| void | setAutoHide(bool hide) |
См. также QWidget::visible.
changeCurrentOnDrag : bool
Если true, текущая вкладка автоматически меняется при перетаскивании над таб-баром.
Примечание: Также необходимо установить свойство acceptDrops в значение true, чтобы эта функция работала.
По умолчанию это свойство равно false.
Это свойство было введено в Qt 5.4.
Функции доступа:
| bool | changeCurrentOnDrag() const |
| void | setChangeCurrentOnDrag(bool change) |
count : const int
Это свойство содержит количество вкладок в таб-баре.
Функции доступа:
| int | count() const |
currentIndex : int
Это свойство содержит индекс видимой вкладки таб-бара.
Текущий индекс равен -1, если нет текущей вкладки.
Функции доступа:
| int | currentIndex() const |
| void | setCurrentIndex(int index) |
Сигнал-уведомление:
| void | currentChanged(int index) |
documentMode : bool
Это свойство указывает, отображается ли таб-бар в режиме, подходящем для главного окна.
Это свойство используется как подсказка для стилей, чтобы отображать вкладки по-другому, чем обычно в таб-виджете. В macOS это будет похоже на вкладки в Safari или приложении Terminal в Sierra.
Это свойство было введено в Qt 4.5.
Функции доступа:
| 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 4.2.
Функции доступа:
| Qt::TextElideMode | elideMode() const |
| void | setElideMode(Qt::TextElideMode) |
См. также QTabWidget::elideMode, usesScrollButtons, и QStyle::SH_TabBar_ElideMode.
expanding : bool
Когда expanding равно true, QTabBar увеличивает вкладки, чтобы использовать пустое пространство.
По умолчанию значение равно true.
Это свойство было введено в Qt 4.5.
Функции доступа:
| bool | expanding() const |
| void | setExpanding(bool enabled) |
См. также QTabWidget::documentMode.
iconSize : QSize
Это свойство содержит размер значков в таб-баре.
Значение по умолчанию зависит от стиля. iconSize - максимальный размер; значки, которые меньше, не масштабируются.
Это свойство было введено в Qt 4.1.
Функции доступа:
| QSize | iconSize() const |
| void | setIconSize(const QSize &size) |
См. также QTabWidget::iconSize.
movable : bool
Это свойство указывает, могут ли пользователи перемещать вкладки в области таб-бара.
По умолчанию это свойство равно false;
Это свойство было введено в Qt 4.5.
Функции доступа:
| bool | isMovable() const |
| void | setMovable(bool movable) |
selectionBehaviorOnRemove : SelectionBehavior
Какая вкладка должна быть установлена как текущая, когда вызывается removeTab, если удаляемая вкладка также является текущей.
По умолчанию значение равно SelectRightTab.
Это свойство было введено в Qt 4.5.
Функции доступа:
| 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.
Это свойство было введено в Qt 4.5.
Функции доступа:
| bool | tabsClosable() const |
| void | setTabsClosable(bool closable) |
См. также setTabButton() и tabRemoved().
usesScrollButtons : bool
Это свойство указывает, должен ли таб-бар использовать кнопки для прокрутки вкладок при большом количестве вкладок.
Если в таб-баре слишком много вкладок для его размера, таб-бар может либо увеличить свой размер, либо добавить кнопки, которые позволяют прокручивать вкладки.
По умолчанию значение зависит от стиля.
Это свойство было введено в Qt 4.2.
Функции доступа:
| 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] void QTabBar::tabBarClicked(int index)
Этот сигнал испускается, когда пользователь нажимает на вкладку с данным index.
index — индекс нажатой вкладки, или -1, если под курсором нет вкладки.
Эта функция была добавлена в Qt 5.2.
[signal] void QTabBar::tabBarDoubleClicked(int index)
Этот сигнал испускается, когда пользователь дважды щелкает по вкладке с данным index.
index — индекс нажатой вкладки, или -1, если под курсором нет вкладки.
Эта функция была добавлена в Qt 5.2.
[signal] void QTabBar::tabCloseRequested(int index)
Этот сигнал испускается, когда нажата кнопка закрытия вкладки. index — индекс, который следует удалить.
Эта функция была добавлена в Qt 4.5.
См. также setTabsClosable().
[signal] void QTabBar::tabMoved(int from, int to)
Этот сигнал испускается, когда вкладка с индексом from перемещена в позицию с индексом to.
Примечание: QTabWidget автоматически переместит страницу, когда этот сигнал испускается из его вкладки.
Эта функция была добавлена в Qt 4.5.
См. также 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).
[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.
[override virtual protected] void QTabBar::keyPressEvent(QKeyEvent *event)
Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).
[override virtual] QSize QTabBar::minimumSizeHint() const
Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.
[virtual protected] QSize QTabBar::minimumTabSizeHint(int index) const
Возвращает минимальный размер вкладки для вкладки в позиции index.
Эта функция была добавлена в Qt 5.0.
[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.
Эта функция была добавлена в Qt 4.5.
См. также 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).
Эта функция была добавлена в Qt 4.5.
См. также 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.
Если указан некорректный цвет, вкладка будет использовать роль переднего плана QTabBar вместо этого.
См. также tabTextColor().
void QTabBar::setTabToolTip(int index, const QString &tip)
Устанавливает всплывающую подсказку для вкладки на позиции index в значение tip.
См. также tabToolTip().
void QTabBar::setTabWhatsThis(int index, const QString &text)
Устанавливает текст справки What's This для вкладки на позиции index в значение text.
Эта функция была добавлена в Qt 4.1.
См. также tabWhatsThis().
[override virtual protected] void QTabBar::showEvent(QShowEvent *)
Переопределяет: QWidget::showEvent(QShowEvent *event).
[override virtual] QSize QTabBar::sizeHint() const
Переопределяет функцию доступа к свойству: QWidget::sizeHint.
int QTabBar::tabAt(const QPoint &position) const
Возвращает индекс вкладки, которая покрывает position, или -1, если ни одна вкладка не покрывает position;
Эта функция была добавлена в Qt 4.3.
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().
[virtual protected] void QTabBar::tabInserted(int index)
Этот виртуальный обработчик вызывается после добавления или вставки новой вкладки на позиции index.
См. также tabRemoved().
[virtual protected] void QTabBar::tabLayoutChange()
Этот виртуальный обработчик вызывается всякий раз, когда изменяется макет вкладок.
См. также tabRect().
QRect QTabBar::tabRect(int index) const
Возвращает прямоугольник отображения вкладки на позиции index, или нулевой прямоугольник, если index вне диапазона.
[virtual protected] void QTabBar::tabRemoved(int index)
Этот виртуальный обработчик вызывается после удаления вкладки с позиции index.
См. также tabInserted().
[virtual protected] 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 вне диапазона.
Эта функция была добавлена в Qt 4.1.
См. также setTabWhatsThis().
[override virtual protected] void QTabBar::timerEvent(QTimerEvent *event)
Переопределяет: QObject::timerEvent(QTimerEvent *event).
[override virtual protected] 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-5.14/qtabbar.html