QToolButton按钮和常用的QPushButton按钮都继承自QAbstractButton类,大部分功能能想通,QToolButton有自己特有的一些功能。
(1)主要用于工具栏,标题栏里的工具按钮
(2)单独放置一个图标,悬浮显示提示文本的
(3)同时放置图标和文本
(4)仅放置文本
一、QToolButton特有的接口
void setToolButtonStyle(Qt::ToolButtonStyle style);
设置按钮的样式:仅显示图标、仅显示文本、文本在图标右侧、文本在图标下方;
// 设置图标
QToolButton *btn = new QToolButton();
btn->setIcon(QIcon("1.png"));
// 设置文本在图标下方
btn->setToolButtonStyle("Qt::ToolButtonTextUnderIcon");
setPopupMode函数
使用 QToolButton::setPopupMode(ToolButtonPopupMode mode)
方法设置菜单弹出的行为。QToolButton
提供了三种弹出模式:
DelayedPopup
:按下并持续一段时间后显示菜单。MenuButtonPopup
:显示一个箭头指示菜单存在,点击箭头部分显示菜单。InstantPopup
:点击按钮时立即显示菜单,且不会触发按钮自身的动作 。
通过调用 QToolButton::setMenu(QMenu *menu)
方法将一个 QMenu
对象与 QToolButton
关联。这样,当用户点击按钮时,会显示指定的菜单
一个样式表设置demo
QToolButton
{
background:transparent;
border-radius: 2px;
border-image:url(:/icon/normal.png);
}
QToolButton:hover,QToolButton:pressed
{
border-image:url(:/icon/hover.png);
}
QToolButton:disabled
{
border-image:url(:/icon/disabled.png);
}
二、总结
QToolButton
和 QPushButton
都继承自 QAbstractButton
,因此它们共享一些基本的特性和方法,如设置图标、文本、连接信号和槽等。然而,QToolButton
提供了额外的功能,使其更适合在工具栏中使用,而 QPushButton
更适合需要明确文本标签的常规按钮场景 。