工具按钮 QToolButton

工具按钮常常用来显示图标,然后添加到工具栏中

常用属性和方法

文本

设置和获取文本

//设置和获取文本
QString text() const
void setText(const QString &text)

图片

设置和获取图片

//设置和获取图片
QIcon icon() const
void setIcon(const QIcon &icon)

 获取和设置图片尺寸

//设置和获取图片尺寸
QSize iconSize() const
void setIconSize(const QSize &size)

按钮风格

设置和获取工具按钮的风格

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)

style有4种取值:

  • Qt::ToolButtonIconOnly,只显示图片,
  • Qt::ToolButtonTextOnly,只显示文本,
  • Qt::ToolButtonTextBesideIcon,文本在图片的右侧,
  • Qt::ToolButtonTextUnderIcon,文本在图片的下面,
  • Qt::ToolButtonFollowStyle,跟随系统样式

箭头类型

可以设置箭头,注意:设置箭头后,设置的图标也就不会再显示了,被箭头代替

//获取和设置箭头的类型
Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)

type有4种取值:

  • Qt::NoArrow,没有箭头
  • Qt::UpArrow,上箭头,
  • Qt::DownArrow,下箭头,
  • Qt::LeftArrow,左箭头,
  • Qt::RightArrow,右箭头,

自动凸出

就是鼠标悬浮时,有一个凸出的效果(该方法还会使得按钮的边框消失

//设置和获取自动凸出
bool autoRaise() const
void setAutoRaise(bool enable)

获取和设置按钮关联的菜单(按钮都有的方法)

//获取和设置按钮关联的菜单
QMenu *QToolButton::menu() const
void QToolButton::setMenu(QMenu *menu)

 菜单弹出模式

//获取和设置菜单的弹出模式
QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)

 mode有三个取值

  • QToolButton::DelayedPopup ,长按按钮一小会儿后才会弹出菜单,(注意右下角多了1个小三角)

  • QToolButton::MenuButtonPopup,会出现1个小三角,点击小三角立即弹出菜单

  • QToolButton::InstantPopup,点击按钮立即弹出

 举例

使用ToolButton来填充工具栏

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QToolButton>
#include<QMenu>
#include<QToolBar>


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr)  : QWidget(parent)
    {
        resize(500,500);

        QMenu* menu=new QMenu(this);
        QAction* a1=new QAction("1号",this);
        QAction* a2=new QAction("2号",this);
        QAction* a3=new QAction("3号",this);
        menu->addAction(a1);
        menu->addAction(a2);
        menu->addAction(a3);

        QToolBar* tool_bar=new QToolBar(this);

        //1号按钮
        QToolButton* tool_btn1=new QToolButton(this);
        tool_btn1->setIcon(QIcon(":/11.png"));
        tool_btn1->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn1->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn1->setAutoRaise(true);
        //设置悬浮提示
        tool_btn1->setToolTip("相册");
        tool_bar->addWidget(tool_btn1);

        //2号按钮
        QToolButton* tool_btn2=new QToolButton(this);
        tool_btn2->setIcon(QIcon(":/22.png"));
        tool_btn2->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn2->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn2->setAutoRaise(true);
        //设置悬浮提示
        tool_btn2->setToolTip("消息");
        tool_btn2->setMenu(menu);
        //按小箭头立即弹出菜单
        tool_btn2->setPopupMode(QToolButton::MenuButtonPopup);
        tool_bar->addWidget(tool_btn2);

        //3号按钮
        QToolButton* tool_btn3=new QToolButton(this);
        tool_btn3->setIcon(QIcon(":/33.png"));
        tool_btn3->setIconSize(QSize(30,30));
        //只显示图标
        tool_btn3->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);
        tool_btn3->setAutoRaise(true);
        //设置悬浮提示
        tool_btn3->setToolTip("摄影");
        tool_btn3->setMenu(menu);
        //按小箭头立即弹出菜单
        tool_btn3->setPopupMode(QToolButton::MenuButtonPopup);
        tool_bar->addWidget(tool_btn3);




    }
    ~Widget()=default;
};
#endif // WIDGET_H

 学习链接:https://github.com/0voice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值