void MenuItemMgr::insertMenu( QMenu* menu , QWidgetAction* item ) { Q_ASSERT( menu!= NULL ) ; QAction* action = NULL ; QObjectList::iterator it ; QActionGroup* pActionGroup = myMainWindow->getActionGroup() ; Q_ASSERT( pActionGroup!= NULL ) ; QObjectList menuitems = item->children() ; for( it = menuitems.begin() ; it != menuitems.end() ; it++ ) { QWidgetAction *wa = (QWidgetAction*)*it ; if( wa->children().isEmpty() ) { //action = menu->addAction( wa->icon() , wa->text() ) ; menu->addAction(wa); registerAction( wa ) ; pActionGroup->addAction( wa ) ; } else insertMenu( menu , wa ) ; } }
void MenuItemMgr::insertMenu( Qtitan::RibbonGroup* rGroup , QWidgetAction* item ) { QObjectList::iterator it ; QActionGroup* pActionGroup = myMainWindow->getActionGroup() ; Q_ASSERT( pActionGroup!= NULL ) ; QObjectList menuitems = item->children() ; if( menuitems.isEmpty() ) return ; for( it = menuitems.begin() ; it != menuitems.end() ; it++ ) { QWidgetAction *wa = (QWidgetAction*)*it ; if( wa->children().isEmpty() ) { // 不含有子菜单 //QAction* action = rGroup->addAction( wa->icon(), // wa->text(), Qt::ToolButtonTextUnderIcon); rGroup->addAction(wa, Qt::ToolButtonTextUnderIcon); registerAction( wa ) ; pActionGroup->addAction( wa ) ; } else { // 含有子菜单 QMenu* menuPopup = rGroup->addMenu( wa->icon(), wa->text() , Qt::ToolButtonTextUnderIcon); insertMenu( menuPopup , wa ) ; } } }