QToolButton 类提供命令或选项的快速访问按钮,通常用于 QToolBar . 更多...
头: | #include <QToolButton> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QAbstractButton |
enum | ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup } |
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 | 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 ()。以如任何其它 Widget 的相同方式构造工具按钮,并将它们同其它小部件一起排列在布局中是可能的。
工具按钮的一种经典用法是选择工具;例如,绘图程序中的 pen 工具。这将通过使用 QToolButton 作为切换按钮 来实现 (见 setCheckable ()).
QToolButton 支持自动上升。在自动上升模式下,按钮才绘制 3D 框架当鼠标指到它时。特征会自动打开当按钮用于 QToolBar 。改变它采用 setAutoRaise ().
工具按钮的图标被设为 QIcon 。这使之可能为禁用和活动状态,指定不同像素图。使用禁用像素图,当按钮功能不可用时。显示活动像素图,当因为鼠标指针悬停在活动像素图上时按钮会自动上升。
按钮外观和尺度的调节采用 setToolButtonStyle () 和 setIconSize ()。当用于 QToolBar 在 QMainWindow ,按钮被自动调节到 QMainWindow 的设置 (见 QMainWindow::setToolButtonStyle () 和 QMainWindow::setIconSize ())。而不是图标,工具按钮还可以显示箭头符号,指定采用 arrowType .
工具按钮可以按弹出菜单方式提供额外选择。弹出菜单的设置可以使用 setMenu ()。使用 setPopupMode () 以配置可用于具有菜单设置的工具按钮的不同模式。默认模式为 DelayedPopupMode,有时用于 Web 浏览器的 "后退" 按钮。按住并保持按钮向下一段时间后,菜单弹出展示要跳转到的可能页面列表。超时从属样式,见 QStyle::SH_ToolButton_PopupDelay .
Qt Assistant's toolbar with tool buttons |
Qt Assistant 的工具栏包含用于主窗口其它部分关联动作的工具按钮。 |
另请参阅 QPushButton , QToolBar , QMainWindow ,和 QAction .
描述拥有菜单集或包含动作列表的工具按钮应如何弹出菜单。
常量 | 值 | 描述 |
---|---|---|
QToolButton::DelayedPopup
|
0
|
按住并保持工具按钮向下一定时间后 (超时从属样式,见 QStyle::SH_ToolButton_PopupDelay ),显示菜单。典型应用程序范例是某些 Web 浏览器工具栏中的 "后退" 按钮。若用户点击它,浏览器只需浏览回上一页面。若用户按住并保持按钮向下一段时间,工具按钮将展示包含当前历史列表的菜单 |
QToolButton::MenuButtonPopup
|
1
|
在此模式下,工具按钮会显示特殊箭头以指示菜单的存在。显示菜单,当按下按钮的箭头部分时。 |
QToolButton::InstantPopup
|
2
|
显示菜单无延迟,当按下工具按钮时。在此模式下,不触发按钮自身的动作。 |
此特性保持按钮是否显示箭头,而不是正常图标
这以图标方式显示箭头为 QToolButton .
默认情况下,此特性被设为 Qt::NoArrow .
访问函数:
Qt::ArrowType | arrowType () const |
void | setArrowType (Qt::ArrowType type ) |
此特性保持是否启用自动上升。
默认被禁用 (即:false)。
此特性在 macOS 目前是忽略的,当使用 QMacStyle 时。
访问函数:
bool | autoRaise () const |
void | setAutoRaise (bool enable ) |
描述用于工具按钮的菜单的弹出方式
默认情况下,此特性被设为 DelayedPopup .
访问函数:
QToolButton::ToolButtonPopupMode | popupMode () const |
void | setPopupMode (QToolButton::ToolButtonPopupMode mode ) |
此特性保持工具按钮是否仅显示图标、仅显示文本、或在图标旁边/下面显示文本。
默认为 Qt::ToolButtonIconOnly .
要让工具按钮样式遵循系统设置,将此特性设为 Qt::ToolButtonFollowStyle 。在 Unix,将使用来自桌面环境的用户设置。在其它平台, Qt::ToolButtonFollowStyle 意味着仅图标。
QToolButton 自动将此槽连接到相关信号在 QMainWindow 其中。
访问函数:
Qt::ToolButtonStyle | toolButtonStyle () const |
void | setToolButtonStyle (Qt::ToolButtonStyle style ) |
[explicit]
QToolButton::
QToolButton
(
QWidget
*
parent
= nullptr)
构造空工具按钮采用父级 parent .
[虚拟]
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 ().
返回默认动作。
另请参阅 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).
Returns the associated menu, or
nullptr
if no menu has been defined.
另请参阅 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 .
[slot]
void
QToolButton::
setDefaultAction
(
QAction
*
action
)
将默认动作设为 action .
若工具按钮拥有默认动作,动作定义以下按钮特性:
其它特性,譬如 autoRepeat ,不受动作影响。与正常命令按钮相反,工具按钮通常不展示文本标签,取而代之展示图标。
另请参阅 defaultAction ().
关联给定 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 (QTimerEvent *e).
[signal]
void
QToolButton::
triggered
(
QAction
*
action
)
此信号被发射当给定 action 被触发。
动作还可以关联用户界面的其它部分 (譬如:菜单项和键盘快捷键)。以这种方式共享动作有助于使用户界面更一致,且实现起来工作量经常更少。