Spec-Zone.ru › Qt

Класс QToolButton

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

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

Типы public

перечисление ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup }

Свойства

  • arrowType : Qt::ArrowType
  • autoRaise : bool
  • popupMode : ToolButtonPopupMode
  • toolButtonStyle : Qt::ToolButtonStyle

Public Функции

QToolButton(QWidget *parent = nullptr)
virtual ~QToolButton()
Qt::ArrowType arrowType() const
bool autoRaise() const
QAction * defaultAction() const
QMenu * menu() const
QToolButton::ToolButtonPopupMode popupMode() const
void setArrowType(Qt::ArrowType type)
void setAutoRaise(bool enable)
void setMenu(QMenu *menu)
void setPopupMode(QToolButton::ToolButtonPopupMode mode)
Qt::ToolButtonStyle toolButtonStyle() const

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

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

Public слоты

void setDefaultAction(QAction *action)
void setToolButtonStyle(Qt::ToolButtonStyle style)
void showMenu()

Сигналы

void triggered(QAction *action)

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

virtual void initStyleOption(QStyleOptionToolButton *option) const

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

virtual void actionEvent(QActionEvent *event) override
virtual void changeEvent(QEvent *e) override
virtual void checkStateSet() override
virtual void enterEvent(QEnterEvent *e) override
virtual bool event(QEvent *event) override
virtual bool hitButton(const QPoint &pos) const override
virtual void leaveEvent(QEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void nextCheckState() override
virtual void paintEvent(QPaintEvent *event) override
virtual void timerEvent(QTimerEvent *e) override

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

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

Кнопки инструмента обычно создаются при создании новых экземпляров QAction с QToolBar::addAction() или при добавлении существующих действий в панель инструментов с помощью QToolBar::addAction(). Также можно создать кнопки инструмента так же, как и любые другие виджеты, и расположить их рядом с другими виджетами в макетах.

Один из классических способов использования кнопки инструмента — выбор инструментов; например, инструмент «ручка» в программе рисования. Это реализуется с помощью QToolButton в качестве переключаемой кнопки (см. setCheckable()).

QToolButton поддерживает автоматическое поднятие. В режиме автоматического поднятия кнопка рисует 3D-рамку только тогда, когда на неё указывает указатель мыши. Функция автоматически включается, когда кнопка используется внутри QToolBar. Измените её с помощью setAutoRaise().

Значок кнопки инструмента устанавливается как QIcon. Это позволяет указать разные пиктограммы для отключённого и активного состояния. Отключённая пиктограмма используется, когда функциональность кнопки недоступна. Активная пиктограмма отображается, когда кнопка автоматически поднимается, потому что указатель мыши наведён на неё.

Внешний вид и размеры кнопки можно настроить с помощью setToolButtonStyle() и setIconSize(). При использовании внутри QToolBar в QMainWindow, кнопка автоматически настраивается в соответствии с настройками QMainWindow (см. QMainWindow::setToolButtonStyle() и QMainWindow::setIconSize()). Вместо значка кнопка инструмента может также отображать символ стрелки, указанный с помощью arrowType.

Кнопка инструмента может предлагать дополнительные варианты в всплывающем меню. Всплывающее меню можно установить с помощью setMenu(). Используйте setPopupMode(), чтобы настроить различные режимы, доступные для кнопок инструмента с установленным меню. По умолчанию используется режим DelayedPopupMode, который иногда используется с кнопкой «Назад» в веб-браузере. После нажатия и удерживания кнопки в течение некоторого времени появляется меню, показывающее список возможных страниц для перехода.

Qt Assistant's toolbar with tool buttons
Панель инструментов Qt Assistant содержит кнопки инструмента, связанные с действиями, используемыми в других частях главного окна.

См. также QPushButton, QToolBar, QMainWindow, QAction и Руководство по проектированию графического интерфейса: Кнопка.

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

перечисление QToolButton::ToolButtonPopupMode

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

Константа Значение Описание
QToolButton::DelayedPopup 0 После удержания кнопки инструмента нажатой в течение определенного времени (задержка зависит от стиля, см. QStyle::SH_ToolButton_PopupDelay), меню отображается. Типичный пример применения — кнопка "назад" в панели инструментов некоторых веб-браузеров. При нажатии на неё браузер просто переходит к предыдущей странице. Если пользователь удерживает кнопку нажатой некоторое время, кнопка инструмента отображает меню, содержащее текущий список истории.
QToolButton::MenuButtonPopup 1 В этом режиме кнопка инструмента отображает специальную стрелку, указывающую на наличие меню. Меню отображается при нажатии на часть стрелки кнопки.
QToolButton::InstantPopup 2 Меню отображается без задержки при нажатии на кнопку инструмента. В этом режиме собственное действие кнопки не выполняется.

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

arrowType : Qt::ArrowType

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

Это отображает стрелку как значок для QToolButton.

По умолчанию это свойство установлено в Qt::NoArrow.

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

Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)

autoRaise : bool

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

По умолчанию отключено (т.е. ложь).

Это свойство в настоящее время игнорируется на macOS при использовании QMacStyle.

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

bool autoRaise() const
void setAutoRaise(bool enable)

popupMode : ToolButtonPopupMode

определяет способ использования всплывающих меню с кнопками инструментов

По умолчанию это свойство установлено в DelayedPopup.

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

QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)

toolButtonStyle : Qt::ToolButtonStyle

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

По умолчанию — Qt::ToolButtonIconOnly.

Чтобы стиль кнопок инструментов соответствовал настройкам системы, установите это свойство в Qt::ToolButtonFollowStyle. В Unix будут использоваться настройки пользователя из среды рабочего стола. На других платформах Qt::ToolButtonFollowStyle означает только значок.

QToolButton автоматически подключает этот слот к соответствующему сигналу в QMainWindow, в котором он находится.

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

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)

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

QToolButton::QToolButton(QWidget *parent = nullptr)

Создаёт пустую кнопку инструмента с родителем parent.

[slot] void QToolButton::setDefaultAction(QAction *action)

Устанавливает действие по умолчанию в action.

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

  • checkable
  • checked
  • enabled
  • font
  • icon
  • popupMode (если действие имеет меню)
  • statusTip
  • text
  • toolTip
  • whatsThis

Другие свойства, такие как autoRepeat, не изменяются действием.

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

[slot] void QToolButton::showMenu()

Отображает (всплывает) связанное всплывающее меню. Если такого меню нет, эта функция ничего не делает. Функция не возвращается, пока всплывающее меню не будет закрыто пользователем.

[signal] void QToolButton::triggered(QAction *action)

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

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

[virtual] QToolButton::~QToolButton()

Уничтожает объект и освобождает выделенные ресурсы.

[override virtual protected] void QToolButton::actionEvent(QActionEvent *event)

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

[override virtual protected] void QToolButton::changeEvent(QEvent *e)

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

[override virtual protected] void QToolButton::checkStateSet()

Переопределяет: QAbstractButton::checkStateSet().

QAction *QToolButton::defaultAction() const

Возвращает действие по умолчанию.

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

[override virtual protected] void QToolButton::enterEvent(QEnterEvent *e)

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

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

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

[override virtual protected] bool QToolButton::hitButton(const QPoint &pos) const

Переопределяет: QAbstractButton::hitButton(const QPoint &pos) const.

[virtual protected] void QToolButton::initStyleOption(QStyleOptionToolButton *option) const

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

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

[override virtual protected] void QToolButton::leaveEvent(QEvent *e)

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

QMenu *QToolButton::menu() const

Возвращает связанное меню или nullptr если меню не было определено.

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

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

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

[override virtual protected] void QToolButton::mousePressEvent(QMouseEvent *e)

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

[override virtual protected] void QToolButton::mouseReleaseEvent(QMouseEvent *e)

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

[override virtual protected] void QToolButton::nextCheckState()

Переопределяет: QAbstractButton::nextCheckState().

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

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

Рисует кнопку в ответ на событие рисования event.

void QToolButton::setMenu(QMenu *menu)

Связывает указанное меню menu с этой кнопкой.

Меню будет отображаться в соответствии с режимом отображения меню кнопки popupMode.

Владение меню не передается кнопке.

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

[override virtual] QSize QToolButton::sizeHint() const

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

[override virtual protected] void QToolButton::timerEvent(QTimerEvent *e)

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

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

Spec-Zone.ru

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