Класс QToolButton
Класс QToolButton предоставляет кнопку быстрого доступа к командам или параметрам, обычно используемую внутри QToolBar. Подробнее...
| Заголовок: | #include <QToolButton> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractButton |
Типы публичного доступа
| перечисление | ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup } |
Свойства
- arrowType : Qt::ArrowType
- autoRaise : bool
- popupMode : ToolButtonPopupMode
- toolButtonStyle : Qt::ToolButtonStyle
Функции публичного доступа
| 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 |
Переопределенные функции публичного доступа
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Свойства публичного доступа
| 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 | 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
Это свойство определяет, включено ли автоматическое поднятие или нет.
По умолчанию отключено (т.е. false).
Это свойство в настоящее время игнорируется на 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)
Этот сигнал излучается, когда данное действие 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).
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().
END_OF_DOCUMENT_MARKER
[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.0/qtoolbutton.html