QMenu,QT的菜單添加

添加菜單方法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 ()函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章