添加菜單方法1
m_pMenuBar= new QMenuBar(this);
QMenu*pFileMenu = new QMenu("&文件",m_pMenuBar);
QMenu*pOpenMenu = new QMenu("打開", pFileMenu);
QMenu*pCreateMenu = new QMenu("創建", pFileMenu);
QAction*pOpenAction = pFileMenu->addMenu(pOpenMenu);
QAction*pCreateAction = pFileMenu->addMenu(pCreateMenu);
connect(pOpenAction, SIGNAL(triggered()),this, SLOT(openFile()));
通過addMenu()添加起來的菜單是含有打開的箭頭,並且不connect到信號和槽
添加菜單方法2
m_pMenuBar= new QMenuBar(this);
QMenu*pFileMenu = new QMenu("&文件",m_pMenuBar);
QAction*pOpenAction = pFileMenu->addAction("打開");
QAction*pCreateAction = pFileMenu->addAction("創建");
通過addAction只添加QAction*,不再會含有子菜單的展開箭頭,並且可以connect消息和槽
。。。。
總結:猜測,菜單要有響應添加的是QAction*,並不是QMemu,當需要有子菜單的時候纔會用addMenu ()函數。