QToolButton类提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面。
工具按钮和普通的命令按钮不同,通常不显示文本,而显示图标。
当使用QToolBar::addAction()添加1个新的(或已存在的)QAction至工具栏时,工具按钮通常被创建 。也能够用一样的方式构建工具按钮和其它部件,并设置它们的布局。
QToolButton支持自动浮起,在自动浮起模式中,只有在鼠标指向它的时候才绘制3维框架。当按钮被用在QToolBar里时,这个特点会被自动启用,可使用setAutoRaise()来改变。
按钮的外观和尺寸可通过setToolButtonStyle()和setIconSize()来调理。当在QMainWindow的QToolBar里使用时,按钮会自动地调理来合适QMainWindow的设置(见QMainWindow::setToolButtonStyle() 和QMainWindow::setIconSize())。
工具按钮可以提供1个弹出菜单,使用SetMenu()来进行设置。使用setPopupMode()来设置菜单的弹出模式,缺省模式是DelayedPopupMode,这个特点有时对网页阅读器中的“后退”按钮有用,在按下按钮1段时间后,会弹出1个显示所有可以后退阅读的可能页面的菜单列表,默许延迟600毫秒,可以用setPopupDelay()进行调剂。
void setMenu(QMenu * menu)
设置按钮的弹出菜单。和QPushButton用法类似,详见:Qt之QPushButton
void setPopupMode(ToolButtonPopupMode mode)
设置弹出菜单的方式,默许情况下,设置为DelayedPopup(延迟弹出)。
枚举QToolButton::ToolButtonPopupMode:
常量 | 值 | 描写 |
---|---|---|
QToolButton::DelayedPopup | 0 | 按下按钮1定时间后(超时风格依赖,参考:QStyle::SH_ToolButton_PopupDelay),显示菜单。1个典型案例:阅读器中工具栏的“后退”按钮。 |
QToolButton::MenuButtonPopup | 1 | 这类模式下,工具按钮显示1个特殊的箭头以唆使菜单是不是存在,按下按钮的箭头部份时显示菜单。 |
QToolButton::InstantPopup | 2 | 按下工具按钮时菜单显示,无延迟。这类模式下,按钮本身的动作不触发。 |
void setToolButtonStyle(Qt::ToolButtonStyle style)
设置按钮风格,只显示1个图标,文本或文本位于图标旁边、下方。默许值是Qt::ToolButtonIconOnly。
枚举Qt::ToolButtonStyle:
常量 | 值 | 描写 |
---|---|---|
Qt::ToolButtonIconOnly | 0 | 只显示图标 |
Qt::ToolButtonTextOnly | 1 | 只显示文本 |
Qt::ToolButtonTextBesideIcon | 2 | 文本显示在图标旁边 |
Qt::ToolButtonTextUnderIcon | 3 | 文本显示在图标下边 |
Qt::ToolButtonFollowStyle | 4 | 遵守QStyle::StyleHint |
void setArrowType(Qt::ArrowType type)
设置按钮是不是显示1个箭头,而不是1个正常的图标。这将显示1个箭头作为QToolButton的图标。
默许情况下,这个属性被设置为Qt::NoArrow。
枚举Qt::ArrowType:
常量 | 值 |
---|---|
Qt::NoArrow | 0 |
Qt::UpArrow | 1 |
Qt::DownArrow | 2 |
Qt::LeftArrow | 3 |
Qt::RightArrow | 4 |
效果:
QToolButton *pButton = new QToolButton(this);
pButton->setArrowType(Qt::LeftArrow);
pButton->setText("Left Arrow");
// 文本位于图标之下
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pButton->setStyleSheet("QToolButton{border: none; background: rgb(68, 69, 73); color: rgb(0, 160, 230);}");
这里,我们可以通过样式表color来设置图标的色彩及文本质。
QAction *pAction = new QAction(this);
pAction->setText(QString::fromLocal8Bit("1去丶23里"));
pAction->setIcon(QIcon(":/Images/logo"));
pButton->setIconSize(QSize(48, 48));
pAction->setToolTip(QString::fromLocal8Bit("青春不老,奋斗不止!"));
pButton->setDefaultAction(pAction);
pButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
下一篇 IOS 蓝牙介绍