菜单栏-QMenuBar
菜单-QMenu
右键菜单-ContextMenu
1, 定义引发右键的信号-槽(菜单栏不需要这一步)
connect(右键对象, SIGNAL(), this, SLOT(slotXXX));
这里的信号可以是对象自己的信号,也可以是自定义的信号(customContextMenuRequested)
这里的槽是自定义的,里面需要存放QMenu对象的创建过程。
2, 定义并初始化QAction,这里你可以理解成右键菜单或者菜单栏菜单中的"项"
QAction * pAction1 = new QAction("1", this);
connect(pAction1, SIGNAL(triggered()), this, SLOT(slotYYY));
3, 定义菜单显示项slotXXX(菜单栏的这一步在菜单栏添加菜单时定义)
QMenu * pMenu = new QMenu(this);
pMenu->addAction(XAction);
pMenu->exec(QPoint);//自定义信号:右键对象->mapToGlobal(QPoint);
//pMenu->popup(QPoint); //自定义信号:右键对象->mapToGlobal(QPoint);
QMenu * pMenu = menuBar()->addMenu("");
pMenu->addAction(XAction);