Класс QToolButton
Класс QToolButton предоставляет кнопку быстрого доступа к командам или параметрам, обычно используемую внутри QToolBar. Подробнее...
| Заголовок: | #include <QToolButton> |
| qmake: | QT += widgets |
| Наследуется от: | QAbstractButton |
Типы Public
| перечисление | ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup } |
Свойства
- arrowType : Qt::ArrowType
- autoRaise : bool
- popupMode : ToolButtonPopupMode
- toolButtonStyle : Qt::ToolButtonStyle
- 11 свойств унаследовано от QAbstractButton
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Функции 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 |
- 21 функция public, унаследованная от QAbstractButton
- 214 функций public, унаследованных от QWidget
- 31 функция public, унаследованная от QObject
- 14 функций public, унаследованных от QPaintDevice
Слот Public
| void | setDefaultAction(QAction *action) |
| void | setToolButtonStyle(Qt::ToolButtonStyle style) |
| void | showMenu() |
- 5 слотов public, унаследованных от QAbstractButton
- 19 слотов public, унаследованных от QWidget
- 1 слот public, унаследованный от QObject
Сигналы
| void | triggered(QAction *action) |
- 4 сигнала, унаследованные от QAbstractButton
- 3 сигнала, унаследованные от QWidget
- 2 сигнала, унаследованные от QObject
Статические члены Public
| const QMetaObject | staticMetaObject |
- 5 статических членов public, унаследованных от QWidget
- 9 статических членов public, унаследованных от 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 защищенный слот, унаследованный от QWidget
Подробное описание
Класс 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().
END_OF_DOCUMENT_MARKER
[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.
Если кнопка инструмента имеет действие по умолчанию, это действие определяет следующие свойства кнопки:
- checkable
- checked
- enabled
- шрифт
- иконка
- popupMode (если действие имеет меню)
- подсказка состояния
- текст
- подсказка
- справка
Другие свойства, такие как autoRepeat, не затрагиваются действиями.
См. также 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/qt-5.12/qtoolbutton.html