Класс QToolButton
Класс QToolButton предоставляет кнопку быстрого доступа к командам или параметрам, обычно используемую внутри QToolBar. Подробнее...
| Заголовок: | #include <QToolButton> |
| qmake: | QT += widgets |
| Наследует: | QAbstractButton |
Типы публичного доступа
| перечисление | ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup } |
Свойства
- arrowType : Qt::ArrowType
- autoRaise : bool
- popupMode : ToolButtonPopupMode
- toolButtonStyle : Qt::ToolButtonStyle
- 11 свойств унаследовано от QAbstractButton
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Функции публичного доступа
| 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 |
- 21 функция публичного доступа унаследована от QAbstractButton
- 214 функций публичного доступа унаследовано от QWidget
- 34 функции публичного доступа унаследовано от QObject
- 14 функций публичного доступа унаследовано от QPaintDevice
Слот публичного доступа
| void | setDefaultAction(QAction *action) |
| void | setToolButtonStyle(Qt::ToolButtonStyle style) |
| void | showMenu() |
- 5 слотов публичного доступа унаследовано от QAbstractButton
- 19 слотов публичного доступа унаследовано от QWidget
- 1 слот публичного доступа унаследовано от QObject
Сигналы
| void | triggered(QAction *action) |
- 4 сигнала унаследовано от QAbstractButton
- 3 сигнала унаследовано от QWidget
- 2 сигнала унаследовано от QObject
Защищенные функции
| void | initStyleOption(QStyleOptionToolButton *option) const |
Переопределенные защищенные функции
| virtual void | actionEvent(QActionEvent *event) override |
| virtual void | changeEvent(QEvent *e) override |
| virtual void | enterEvent(QEvent *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 |
- 14 защищенных функций унаследовано от QAbstractButton
- 35 защищенных функций унаследовано от QWidget
- 9 защищенных функций унаследовано от QObject
- 1 защищенная функция унаследовано от QPaintDevice
Дополнительные унаследованные члены
- 1 публичная переменная унаследована от QObject
- 5 статических публичных членов унаследовано от QWidget
- 10 статических публичных членов унаследовано от QObject
- 1 защищенный слот унаследован от QWidget
- 2 защищенных переменных унаследовано от QObject
- 1 защищенный тип унаследован от QPaintDevice
Подробное описание
Класс QToolButton предоставляет кнопку быстрого доступа к командам или параметрам, обычно используемую внутри QToolBar.
Кнопка инструмента — это специальная кнопка, обеспечивающая быстрый доступ к определённым командам или параметрам. В отличие от обычной кнопки команды, кнопка инструмента обычно не отображает текстовую метку, а отображает вместо неё значок.
Кнопки инструмента обычно создаются при создании новых экземпляров 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, который иногда используется с кнопкой "Назад" в веб-браузере. После нажатия и удерживания кнопки в течение некоторого времени всплывает меню, отображающее список возможных страниц для перехода. Время ожидания зависит от стиля, см. QStyle::SH_ToolButton_PopupDelay.
| Панель инструментов Qt Assistant содержит кнопки инструментов, связанные с действиями, используемыми в других частях главного окна. |
См. также QPushButton, QToolBar, QMainWindow, QAction и Справочник по проектированию пользовательского интерфейса: Кнопка.
Документация по типам членов
enum 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.
[virtual] QToolButton::~QToolButton()
Уничтожает объект и освобождает все выделенные ресурсы.
[override virtual protected] void QToolButton::actionEvent(QActionEvent *event)
Переопределено из QWidget::actionEvent().
[override virtual protected] void QToolButton::changeEvent(QEvent *e)
Переопределено из QAbstractButton::changeEvent().
QAction *QToolButton::defaultAction() const
Возвращает действие по умолчанию.
См. также setDefaultAction().
[override virtual protected] void QToolButton::enterEvent(QEvent *e)
Переопределено из QWidget::enterEvent().
[override virtual protected] bool QToolButton::event(QEvent *event)
Переопределено из QAbstractButton::event().
[override virtual protected] bool QToolButton::hitButton(const QPoint &pos) const
Переопределено из QAbstractButton::hitButton().
[protected] void QToolButton::initStyleOption(QStyleOptionToolButton *option) const
Инициализирует option значениями из этой QToolButton. Этот метод полезен для подклассов, когда им нужен QStyleOptionToolButton, но они не хотят заполнять всю информацию самостоятельно.
См. также QStyleOption::initFrom().
[override virtual protected] void QToolButton::leaveEvent(QEvent *e)
Переопределено из QWidget::leaveEvent().
QMenu *QToolButton::menu() const
Возвращает связанное меню или 0, если меню не определено.
См. также setMenu().
[override virtual] QSize QToolButton::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
[override virtual protected] void QToolButton::mousePressEvent(QMouseEvent *e)
Переопределено из QAbstractButton::mousePressEvent().
[override virtual protected] void QToolButton::mouseReleaseEvent(QMouseEvent *e)
Переопределено из QAbstractButton::mouseReleaseEvent().
[override virtual protected] void QToolButton::nextCheckState()
Переопределено из QAbstractButton::nextCheckState().
[override virtual protected] void QToolButton::paintEvent(QPaintEvent *event)
Переопределено из QAbstractButton::paintEvent().
Отображает кнопку в ответ на событие event.
[slot] void QToolButton::setDefaultAction(QAction *action)
Устанавливает действие по умолчанию на action.
Если кнопка инструмента имеет действие по умолчанию, действие определяет свойства кнопки, такие как текст, значок, подсказка и т. д.
См. также defaultAction().
void QToolButton::setMenu(QMenu *menu)
Связывает указанное меню с этой кнопкой инструмента.
Меню будет отображаться в соответствии с popupMode кнопки.
Владение меню не передается кнопке инструмента.
См. также menu().
[slot] void QToolButton::showMenu()
Отображает (выводит) связанное всплывающее меню. Если такого меню нет, эта функция ничего не делает. Эта функция не возвращается, пока всплывающее меню не будет закрыто пользователем.
[override virtual] QSize QToolButton::sizeHint() const
Переопределено из QWidget::sizeHint().
[override virtual protected] void QToolButton::timerEvent(QTimerEvent *e)
Переопределено из QAbstractButton::timerEvent().
[signal] void QToolButton::triggered(QAction *action)
Этот сигнал испускается, когда данное действие активируется.
Действие также может быть связано с другими частями пользовательского интерфейса, такими как пункты меню и сочетания клавиш. Обмен действиями таким образом помогает сделать пользовательский интерфейс более согласованным и часто требует меньше усилий для реализации.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qtoolbutton.html