Класс 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 содержит кнопки инструмента, связанные с действиями, используемыми в других частях главного окна. |
См. также 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