QToolButton

简介

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!!";
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值