简介
QToolButton提供一个快速的访问按钮,通常在工具栏内使用,默认图标和文本都设置后、不显示文本标签而显示图标;
图表文本的位置
//设置按钮风格
void setToolButtonStyle(Qt::ToolButtonStyle style)
枚举值 | 详解 |
---|---|
Qt::ToolButtonIconOnly | 只显示图标 |
Qt::ToolButtonTextOnly | 只显示文本 |
Qt::ToolButtonTextBesideIcon | 文本显示在图标旁边 |
Qt::ToolButtonTextUnderIcon | 文本显示在图标下边 |
Qt::ToolButtonFollowStyle | 遵循QStyle::StyleHint |
//仅显示图标
QToolButton *pToolBtn = new QToolButton(this);
pToolBtn->move(10,10);
pToolBtn->setIcon(QIcon("://images/5.png"));
pToolBtn->setText("按钮");
pToolBtn->setToolButtonStyle(Qt::ToolButtonIconOnly);//默认选项
//仅显示文字
QToolButton *pToolBtn2 = new QToolButton(this);
pToolBtn2->move(10,50);
pToolBtn2->setIcon(QIcon("://images/5.png"));
pToolBtn2->setText("按钮");
pToolBtn2->setToolButtonStyle(Qt::ToolButtonTextOnly);
//文本显示在图标右侧
QToolButton *pToolBtn3 = new QToolButton(this);
pToolBtn3->move(10,100);
pToolBtn3->setIcon(QIcon("://images/5.png"));
pToolBtn3->setText("按钮");
pToolBtn3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
//文本显示在图标下方
QToolButton *pToolBtn4 = new QToolButton(this);
pToolBtn4->move(10,150);
pToolBtn4->resize(100,50);
pToolBtn4->setIcon(QIcon("://images/5.png"));
pToolBtn4->setText("按钮");
pToolBtn4->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
箭头风格
QToolButton自带扩展箭头来战士相关箭头,设置箭头后则设置的图表无效;
void setArrowType(Qt::ArrowType type)
枚举值 | 详解 |
---|---|
Qt::NoArrow | 无 |
Qt::UpArrow | 上箭头 |
Qt::DownArrow | 下箭头 |
Qt::LeftArrow | 左箭头 |
Qt::RightArrow | 右箭头 |
//上
QToolButton *pToolBtn = new QToolButton(this);
pToolBtn->move(10,10);
pToolBtn->resize(100,50);
pToolBtn->setText("按钮");
pToolBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//默认选项
pToolBtn->setArrowType(Qt::UpArrow);
//下
QToolButton *pToolBtn2 = new QToolButton(this);
pToolBtn2->move(10,60);
pToolBtn2->resize(100,50);
pToolBtn2->setIcon(QIcon("://images/5.png"));
pToolBtn2->setText("按钮");
pToolBtn2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pToolBtn2->setArrowType(Qt::DownArrow);
//左
QToolButton *pToolBtn3 = new QToolButton(this);
pToolBtn3->move(10,110);
pToolBtn3->resize(100,50);
pToolBtn3->setIcon(QIcon("://images/5.png"));
pToolBtn3->setText("按钮");
pToolBtn3->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pToolBtn3->setArrowType(Qt::LeftArrow);
//右
QToolButton *pToolBtn4 = new QToolButton(this);
pToolBtn4->move(10,160);
pToolBtn4->resize(100,50);
pToolBtn4->setIcon(QIcon("://images/5.png"));
pToolBtn4->setText("按钮");
pToolBtn4->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pToolBtn4->setArrowType(Qt::RightArrow);
菜单
菜单设置和QPushButton一样都是通过setMenu(QMenu*menu); 与QPushButton不同它可以设置弹出菜单的模式:
void setPopupMode(ToolButtonPopupMode mode)
枚举值 | 详解 |
---|---|
QToolButton::DelayedPopup | 鼠标按下后一定时间后延时弹出菜单 |
QToolButton::MenuButtonPopup | 鼠标按下箭头时弹出菜单 |
QToolButton::InstantPopup | 鼠标按下按钮时弹出菜单,注意它会使按钮的按下相关信号无法触发 |
//延时弹出
QToolButton *pToolBtn = new QToolButton(this);
pToolBtn->move(10,10);
pToolBtn->setIcon(QIcon(":/images/back.png"));
// pToolBtn->resize(100,50);
pToolBtn->setArrowType(Qt::UpArrow);
QMenu *menu = new QMenu();
menu->addAction("上一步");
menu->addAction("上上步");
menu->addAction("首页");
pToolBtn->setMenu(menu);
pToolBtn->setPopupMode(QToolButton::DelayedPopup);//默认值
//菜单箭头弹出
QToolButton *pToolBtn2 = new QToolButton(this);
pToolBtn2->move(115,10);
//pToolBtn2->resize(100,50);
pToolBtn2->setIcon(QIcon(":/images/next.png"));
QMenu *menu2 = new QMenu();
menu2->addAction("下一步");
menu2->addAction("下下步");
menu2->addAction("最后");
pToolBtn2->setMenu(menu2);
pToolBtn2->setPopupMode(QToolButton::MenuButtonPopup);//
//按钮弹出
QToolButton *pToolBtn3 = new QToolButton(this);
pToolBtn3->move(220,10);
// pToolBtn3->resize(100,50);
pToolBtn3->setIcon(QIcon("://images/flush.png"));
QMenu *menu3 = new QMenu();
menu3->addAction("刷新当前");
menu3->addAction("刷新全部");
menu3->addAction("重置");
pToolBtn3->setMenu(menu3);
pToolBtn3->setPopupMode(QToolButton::InstantPopup);
//无法触信号槽
connect(pToolBtn3,&QToolButton::clicked,[=](){
qDebug()<<"clicked!!";
});