欢迎关注公众号可以查看更多完整文章
给QPushButton添加菜单的示例四种方式:
Qt学习之给QPushButton添加菜单ActionsContextMenu方法
Qt学习之给QPushButton添加菜单CustomContextMenu方法
Qt学习之给QPushButton添加菜单DefaultContextMenu方法
QPushButton下拉式菜单(是否取消下拉三角,是否check)
所谓二级菜单,相信大家也都知道,就是子菜单。实现效果如下:
实现子菜单需要创建新的QMenu,有几个子菜单,就需要创建几个QMenu对象。还不算主菜单的QMenu对象。
需要先声明,再进行创建,代码实现如下:
QMenu *m_menu;
QAction *m_addAction;
QAction *m_delAction;
QAction *m_subAction;//此动作显示子菜单
QMenu *m_subMenu;//子菜单
QAction *m_subAdd;
QAction *m_subDel;
m_menu = new QMenu(this);
m_addAction = new QAction(m_menu);
m_subAction = new QAction(m_menu);
m_delAction = new QAction(m_menu);
m_addAction->setCheckable(true);//是否可以check
m_delAction->setCheckable(true);//是否可以check
m_addAction->setText(QObject::tr("添加"));
m_subAction->setText(QObject::tr("子菜单"));
m_delAction->setText(QObject::tr("删除"));
m_menu->addAction(m_addAction);
m_menu->addAction(m_delAction);
m_menu->addAction(m_subAction);
connect(m_addAction, &QAction::triggered, this, &ButtonMenu::addFunc);
connect(m_delAction, &QAction::triggered, this, &ButtonMenu::delFunc);
m_subMenu = new QMenu(this);
m_subAdd = new QAction(m_subMenu);
m_subDel = new QAction(m_subMenu);
m_subAdd->setText(QObject::tr("子添加"));
m_subDel->setText(QObject::tr("子删除"));
m_subMenu->addAction(m_subAdd);
m_subMenu->addAction(m_subDel);
m_subAction->setMenu(m_subMenu);
交流QQ:1245178753