//创建button
QPushbutton * button = new QPushbutton;
//连接button点击信号,在点击的时候弹出menu
connect(button,SIGNAL(clicked(bool)),this,SLOT(onButtonClicked(bool)));
//onButtonClicked函数实现。(menu的追加也可以在函数外,在函数外需要追加为全局变量)
void onButtonClicked(bool tt) {
//新建menu
QMenu *menu = new QMenu(this);
//新建action
QAction* act1 = new QAction("选择全局类型",this);
QAction* act2 = new QAction("选择工程类型",this);
QAction* act3 = new QAction("新建工程类型",this);
QAction* act4 = new QAction("移除类型",this);
//把action追加到menu
menu->addAction(act1);
menu->addAction(act1);
menu->addAction(act1);
menu->addAction(act1);
//把menu加载到button
button->setMenu(menu);
//设置button文字
button->setText("下拉列表");
//打开menu
menu->exec(QPoint(QCursor::pos().x(),QCursor::pos().y()));
}
效果:

本文详细介绍了如何使用Qt的QPushButton创建带有下拉菜单的功能,包括菜单的建立、信号与槽的连接、自定义按钮样式以及响应菜单项点击事件的方法。此外,还展示了如何设置按钮图标、调整菜单样式以及实现菜单项图标等进阶技巧。通过实例代码,读者可以快速掌握在Qt中实现下拉菜单的全部过程。
最低0.47元/天 解锁文章
3万+





