目录
1.1方法一:先添加再统一处理响应事件
1.2方法二:添加action方式
1.3方法三:直接添加响应事件方式
1.1方法一:先添加再统一处理响应事件
m_pPreMenu=new QMenu(this);
m_pPreMenu->addAction(QString::fromLocal8Bit("50万"));
m_pPreMenu->addAction(QString::fromLocal8Bit("100万"));
QObject::connect(m_pPreMenu,SIGNAL(triggered(QAction*)),this,SLOT(OnMenuTriggered(QAction*)));
void CLuckWnd::OnMenuTriggered(QAction* p)
{
auto text=p->text().toStdString();//响应不同的事件根据菜单名称
}
1.2方法二:添加action方式
void Widget::on_pushButton_clicked()
{
QMenu *menu=new QMenu("菜单:常规");
QAction *action1=new QAction(QIcon(":/resource/image/向右箭头.jpg"),"action1");
QAction *action2=new QAction(QIcon(":/resource/image/向右箭头.jpg"),"action2");
QList list;
list.append(action1);
list.append(action2);
menu->addActions(list);
QMenuBar *menuBar=new QMenuBar;
menuBar->addMenu(menu);
menuBar->addSeparator(); //分隔栏
ui->verticalLayout->addWidget(menuBar);
}
1.3方法三:直接添加响应事件方式
menu->addAction(QString("File-%1").arg(i),?this,SLOT(actionFile_X_triggered()));
|