QToolButton

简介

QToolButton提供一个快速的访问按钮,通常在工具栏内使用,默认图标和文本都设置后、不显示文本标签而显示图标;

图表文本的位置

//设置按钮风格
void setToolButtonStyle(Qt::ToolButtonStyle style)
枚举值 详解
Qt::ToolButtonIconOnly 只显示图标
Qt::ToolButtonTextOnly 只显示文本
Qt::ToolButtonTextBesideIcon 文本显示在图标旁边
Qt::ToolButtonTextUnderIcon 文本显示在图标下边
Qt::ToolButtonFollowStyle 遵循QStyle::StyleHint

QToolButton_第1张图片

//仅显示图标
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_第2张图片

//上
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_第3张图片

//延时弹出
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!!";
});

你可能感兴趣的:(Qt,qt,c++)