QT 对按钮添加菜单功能实现

本文介绍了如何在Qt中使用QAction和QMenu创建按钮关联的下拉菜单。通过新建QAction对象并添加到QMenu中,然后将QMenu设置给QPushButton,实现了按钮点击显示菜单的功能。此外,还展示了如何消除菜单按钮的指示箭头,以及如何连接槽函数以响应用户操作,如上传文件和创建文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对按钮设置菜单只需使用setMenu函数即可。

实现代码:

m_pAddMenuPB = new QPushButton;
m_pAddMenu = new QMenu;
QAction *upload = new QAction(QIcon(":/map/upload.png"),"上传文件",this);
QAction *createDir = new QAction(QIcon(":/map/createdir.png"),"创建文件夹",this);
m_pAddMenu->addAction(upload);
m_pAddMenu->addAction(createDir);
m_pAddMenuPB->setMenu(m_pAddMenu);
m_pAddMenuPB->setFixedSize(40,40);
m_pFlushFilePB = new QPushButton;
m_pFlushFilePB->setFixedSize(40,40);

QAction是一个类,它的功能是等待指令,执行工作。那么这个指令怎么来呢?比如菜单项、工具栏内按钮,用户在点击这些选项或按钮时,Qt得到反馈,执行指定功能。

QAction函数原型为:

explicit QAction(QObject *parent = nullptr);
explicit QAction(const QString &text, QObject *parent = nullptr);
explicit QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr);

取消菜单右边的小箭头:

mybtn->setStyleSheet("QPushButton::menu-indicator{image:none}");

连接槽函数:

connect(upload, &QAction::triggered, this, &Book::uploadFile);
connect(createDir,&QAction::triggered, this, &Book::createDir);

附上一段QMenu QSS代码:

QMenu{
color:#386487;
background-color:#DEF0FE;
margin:2px;
}

QMenu::item{
padding:3px 20px 3px 20px;
}

QMenu::indicator{
width:13px;
height:13px;
}

QMenu::item:selected{
color:#386487;
border:0px solid #C0DCF2;
background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6);
}

QMenu::separator{
height:1px;
background:#C0DCF2;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值