QToolButton类提供一个快速访问按钮来控制或选择,通常被用于QToolBar中
toolButton是一个特殊的按钮用来快速访问特定的命令或选择。和常规按钮不同的是,工具按钮通常显示图标而不现实文本
在通过QToolBar::addAction创建新的QAction实例或添加已有的action到toolbar中时会创建Toolbtn。也可以像其他控件一样构造一个toolbtn,并将他们一起排列到布局中。
就像笔在绘画中一样,选择按钮是toolBtn的一中典型用法。这中用法将QToolBtn作为切换按钮来用(详见setCheckable)
QToolButton支持自动凸起,在自动突起模式下,只有在鼠标点在按钮上才会显示3D框架。这个特征在QToolBar中使用toolbtn时会自动打开。通过setAUtoRaise修改它。感觉跟字面意义相反
toolButton的图标用QIcon设置。这使得按钮可以通过指定不同的图像来显示禁用和激活状态。当按钮的功能不可用时使用禁用图像。当按钮因为鼠标悬浮在其上而自动突起时显示激活图像。
按钮的外观和尺寸可以通过setToolButtonStyle和setIconSize修改。当在Mainwindo中的toolbar中使用时,按钮自动修正为Main WIndow的设置(详见QMainWIndow::setToolButtonStyle和QMainWIndow::setIconSize)。toolBtn也可以使用箭头来代替图标,通过指定arrowType.
通过setMenu设置,toolBtn可以用作下拉菜单。通过setPopupMode来指定按钮菜单的不同模式。默认模式是DelayedPopuMode,有时和网页的back按钮一起使用。在按钮被按下并保持一段时间后,弹出一个可以跳转的页面菜单。超时是依赖于样式的。详见QSTyle::SH_ToolButton_PopupDelay。
Qt助手的toolbar包含的toolbar关联到Mainwindow其他部分的动作。
enum QToolButton::ToolButtonPopupMode
设置后都会有三角形在右侧
QToolButton::DelayedPopup:在按下按钮并保持一段时间(时间是依赖样式的,见QStyle::SH_ToolButton_PopupDelay(描述是以毫秒为单位的一个整数)),菜单显示。典型的例子就是网页工具栏的back按钮。如果用户点击它,则返回上一个页面,如果按住不放则显示一个历史页面表。
QToolButton::MenuButtonPopup:在这个模式下,按钮会显示一个特定的箭头用来表示菜单被展示。当按箭头部分时菜单显示,否则不展示。
QToolButton::InstantPopup:当按钮按下时没有延迟,菜单立即显示。在这个模式下,按钮自身的动作不会被触发(clicked等)
arrowType : Qt::ArrowType
这个属性决定按钮是否用一个箭头代替常规图片
这个属性默认是Qt::NoArraw. (有上下左右四个箭头类型)
访问接口:
arrowType()
setArrowType()
autoRaise : bool
这个属性决定是否自动突起
默认false突起。
popupMode : ToolButtonPopupMode
描述工具按钮菜单弹出方式。
默认属性是DelayedPopup
访问接口:
ToolButtonPopupMode popupMode() const
void setPopupMode(ToolButtonPopupMode mode)
toolButtonStyle : Qt::ToolButtonStyle
这个属性决定工具按钮显示方式:只显示图标,只显示文本,文本在图标下方或边上(右侧)
默认Qt::ToolButtonIconOnly
想要toolbbutton跟随系统风格,可以设置为Qt::ToolButtonFollowStyle.在Unix中,将匹配用户桌面环境设置。而在其他平台则意味着直线式图标。
QToolButton的草函数会自动连接到其所在QMainWindow的相关信号上。
访问接口:
Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)
QToolButton::QToolButton(QWidget *parent = Q_NULLPTR)
构造一个空toolButton并指定其父对象。
注意:toolbutton构造函数只有这一个。
QToolButton::~QToolButton()
销毁对象并释放相关的资源
QAction *QToolButton::defaultAction() const
返回默认动作
见setDefaultAction
[protected] void QToolButton::initStyleOption(QStyleOptionToolButton *option) const
用QToolButton的值初始化option。这个方法对于那些需要QStyleOptionButton,但是又不想自己填充所有信息的子类是有用的
见QStyleOption::initFrom().
QMenu *QToolButton::menu() const
返回相关的菜单,如果菜单没有定义则返回
见setMenu().
[slot] void QToolButton::setDefaultAction(QAction *action)
槽函数。用action设置默认的动作。如果toolbtn有默认动作,那这个动作定义了按钮的属性如文本,图标,工具提示等
见defaultAction().
void QToolButton::setMenu(QMenu *menu)
关联菜单到这个toolbtn上。菜单根据按钮的popupMode进行显示。菜单的所有权不会转到toolbtn上。
见menu().
[slot] void QToolButton::showMenu()
槽函数。显示(弹出)相关的菜单。如果按钮没有菜单,那这个函数不起作用。这个函数知道用户关闭下拉菜单才会返回。
主要在自定义按钮中重载这个函数,并实现一些操作。
[signal] void QToolButton::triggered(QAction *action)
信号。当action被触发时这个信号被发送。
动作也有可能被关联到用户界面的其他地方,比如菜单和快捷键。用这种方式共享动作使得用户界面更便捷,通常可以用更少的动作去实现。