QToolButton 类

QToolButton 类提供了一种快速访问命令或选项的按钮,通常用于QToolBar内部。更多...

头文件 #include <QToolButton>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QAbstractButton

公共类型

枚举ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup }

属性

公共函数

QToolButton(QWidget *parent = nullptr)
virtual~QToolButton()
Qt::ArrowTypearrowType() const
boolautoRaise() const
QAction *defaultAction() const
QMenu *menu() const
QToolButton::ToolButtonPopupModepopupMode() const
voidsetArrowType(Qt::ArrowType type)
voidsetAutoRaise(bool enable)
voidsetMenu(QMenu *menu)
voidsetPopupMode(QToolButton::ToolButtonPopupMode mode)
Qt::ToolButtonStyletoolButtonStyle() const

重实现的公共函数

virtual QSizeminimumSizeHint() const override
virtual QSizesizeHint() const override

公共槽函数

voidsetDefaultAction(QAction *action)
voidsetToolButtonStyle(Qt::ToolButtonStyle style)
voidshowMenu()

信号

voidtriggered(QAction *action)

受保护的函数

virtual voidinitStyleOption(QStyleOptionToolButton *option) const

重实现了受保护的函数

virtual voidactionEvent(QActionEvent *event) override
virtual voidchangeEvent(QEvent *e) override
virtual voidcheckStateSet() override
virtual voidenterEvent(QEnterEvent *e) override
虚 bool事件(QEvent *event) override
虚 boolhitButton(const QPoint &pos) const override
virtual voidleaveEvent(QEvent *e) override
virtual voidmousePressEvent(QMouseEvent *e) override
virtual voidmouseReleaseEvent(QMouseEvent *e) override
virtual voidnextCheckState() override
virtual voidpaintEvent(QPaintEvent *event) override
virtual voidtimerEvent(QTimerEvent *e) override

详细描述

工具按钮是一种特殊的按钮,可快速访问特定命令或选项。与普通命令按钮不同,工具按钮通常不显示文本标签,而是显示图标。

工具按钮通常在创建新的QAction实例时创建,使用QToolBar::addAction(),或将现有操作添加到工具栏中使用QToolBar::addAction()。也可以以与其他小部件相同的方式构造工具按钮,并将它们排列在布局中的其他小部件旁边。

工具按钮的一个典型用途是选择工具;例如,绘图程序中的“笔”工具。这可以通过将QToolButton用作切换按钮(请参阅setCheckable())来实现。

QToolButton支持自动抬起。在自动抬起模式下,按钮只在该鼠标指针指向时绘制3D框架。当按钮在QToolBar内使用时,此功能会自动启动。可以通过setAutoRaise来更改它。

工具按钮的图标设置为QIcon。这使得能够为禁用和活动状态指定不同的位图。当按钮的功能不可用时使用禁用位图。活动位图在按钮自动抬起时显示,因为鼠标指针悬停在它上方。

可以使用setToolButtonStyle()和setIconSize()调整按钮的外观和尺寸。当在QMainWindow中的QToolBar内使用时,按钮将自动调整到QMainWindow的设置(请参阅QMainWindow::setToolButtonStyle()和QMainWindow::setIconSize())。工具按钮还可以显示箭头符号,该符号由arrowType指定,而不是图标。

工具按钮可以在弹出菜单中提供额外的选项。可以使用setMenu设置弹出菜单。使用setPopupMode()配置为工具按钮设置的可用不同模式。默认模式是延迟弹出模式,有时与网络浏览器中的“返回”按钮一起使用。按住按钮一段时间后,弹出菜单会弹出显示可以跳转到的一组页面。超时由样式决定,请参阅QStyle::SH_ToolButton_PopupDelay

Qt Assistant的带有工具按钮的工具栏
Qt Assistant的工具栏包含与主窗口其他部分中使用的操作关联的工具按钮。

另请参阅QPushButtonQToolBarQMainWindowQAction

成员类型文档

枚举 QToolButton::ToolButtonPopupMode

描述如何弹出菜单,适用于设置菜单或包含操作列表的工具按钮。

常量描述
QToolButton::DelayedPopup0在按下并按住工具按钮一段时间(超时取决于样式,请参阅 QStyle::SH_ToolButton_PopupDelay)后,显示菜单。一个典型的应用示例是在某些网络浏览器的工具栏中的“后退”按钮。如果用户单击它,浏览器只是浏览到上一页。如果用户按下并按住按钮一段时间,工具按钮将显示包含当前历史列表的菜单
QToolButton::MenuButtonPopup1在这种模式下,工具按钮会显示一个特殊箭头来指示存在菜单。当按下按钮的箭头部分时显示菜单。
QToolButton::InstantPopup2按下工具按钮时立即显示菜单,不延迟。在此模式下,按钮自己的操作不会触发。

属性文档

arrowType : Qt::ArrowType

此属性表示按钮显示的是箭头而不是正常图标

此显示箭头作为 QToolButton 的图标。

默认情况下,此属性设置为 Qt::NoArrow

访问函数

Qt::ArrowTypearrowType() const
voidsetArrowType(Qt::ArrowType type)

autoRaise : bool

此属性表示是否启用自动提升。

默认情况下是禁用的(即 false)。

当使用 QMacStyle 时,此属性在 macOS 上当前被忽略。

访问函数

boolautoRaise() const
voidsetAutoRaise(bool enable)

popupMode : ToolButtonPopupMode

描述了与工具按钮一起使用弹出菜单的方式

默认情况下,此属性设置为 DelayedPopup

访问函数

QToolButton::ToolButtonPopupModepopupMode() const
voidsetPopupMode(QToolButton::ToolButtonPopupMode mode)

toolButtonStyle : Qt::ToolButtonStyle

此属性表示工具按钮是否仅显示图标、仅显示文本,或图标旁边/下面的文本。

默认情况下是 Qt::ToolButtonIconOnly

要使工具按钮样式遵循系统设置,将此属性设置为 Qt::ToolButtonFollowStyle。在 Unix 上,将使用桌面环境中的用户设置。在其他平台上,Qt::ToolButtonFollowStyle 表示仅图标。

QToolButton 自动将此槽连接到此住的 QMainWindow 中的相关信号。

访问函数

Qt::ToolButtonStyletoolButtonStyle() const
voidsetToolButtonStyle(Qt::ToolButtonStyle style)

成员函数文档

[显式] QToolButton::QToolButton(QWidget *parent = nullptr)

构建一个空的工具按钮,其父类为 parent

[虚函数 noexcept] QToolButton::~QToolButton()

销毁对象并释放所有分配的资源。

[重写 虚函数 受保护] void QToolButton::actionEvent(QActionEvent *event)

重新实现: QWidget::actionEvent(QActionEvent *event).

[重写 虚函数 受保护] void QToolButton::changeEvent(QEvent *e)

重新实现: QAbstractButton::changeEvent(QEvent *e).

[重写 虚函数 受保护] void QToolButton::checkStateSet()

重新实现: QAbstractButton::checkStateSet().

QAction *QToolButton::defaultAction() const

返回默认操作。

另请参阅 setDefaultAction().

[重写 虚函数 受保护] void QToolButton::enterEvent(QEnterEvent *e)

重新实现: QWidget::enterEvent(QEnterEvent *event).

[重写 虚函数 受保护] bool QToolButton::event(QEvent *event)

重新实现: QAbstractButton::event(QEvent *e).

[重写 虚函数 受保护] bool QToolButton::hitButton(const QPoint &pos) const

重新实现: QAbstractButton::hitButton(const QPoint &pos) const.

[虚函数 受保护] void QToolButton::initStyleOption(QStyleOptionToolButton *option) const

使用此 QToolButton 的值初始化 option。此方法对于需要 QStyleOptionToolButton 但不希望自己填写所有信息的子类很有用。

另请参阅 QStyleOption::initFrom().

[重写 虚函数 受保护] void QToolButton::leaveEvent(QEvent *e)

重新实现: QWidget::leaveEvent(QEvent *event).

返回相关菜单,如果没有定义菜单则返回 nullptr

另请参阅 setMenu().

[重写 虚函数] QSize QToolButton::minimumSizeHint() const

重新实现属性访问函数: QWidget::minimumSizeHint.

[重写 虚函数 受保护] void QToolButton::mousePressEvent(QMouseEvent *e)

重实现: QAbstractButton::mousePressEvent(QMouseEvent *e).

[重写虚保护] void QToolButton::mouseReleaseEvent(QMouseEvent *e)

重实现: QAbstractButton::mouseReleaseEvent(QMouseEvent *e).

[重写虚保护] void QToolButton::nextCheckState()

重实现: QAbstractButton::nextCheckState().

[重写虚保护] void QToolButton::paintEvent(QPaintEvent *event)

重实现: QAbstractButton::paintEvent(QPaintEvent *e).

根据绘图事件绘制按钮。

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

将默认操作设置到action

如果工具按钮有默认操作,操作定义了按钮的以下属性

其他属性,例如autoRepeat(自动重复),不会受动作影响。

参见defaultAction()。

void QToolButton::setMenu(QMenu *menu)

将与指定的menu关联到这个工具按钮。

菜单将根据按钮的popupMode来显示。

菜单的所有权不会转移到工具按钮上。

参见menu()。

[槽] void QToolButton::showMenu()

显示(弹出)关联的弹出菜单。如果没有这样的菜单,该函数不执行任何操作。此函数不会返回,直到用户关闭弹出菜单。

[重写虚] QSize QToolButton::sizeHint() const

重写属性访问函数: QWidget::sizeHint

[重写虚保护] void QToolButton::timerEvent(QTimerEvent *e)

重写: QAbstractButton::timerEvent(QTimerEvent *e).

[信号] void QToolButton::triggered(QAction *action)

当指定的action被触发时发出此信号。

该动作还可能与其他用户界面部分相关联,如菜单项和键盘快捷键。以这种方式共享动作有助于使用户界面更一致,并且通常更容易实现。

版权所有 © 2024 Qt公司有限公司。本文档中包含的文档贡献均属各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3条款许可的。Qt及其相关标志是芬兰及全球其他地方的Qt公司的商标。商标。所有其他商标均为各自所有者的财产。