2012-12-10 29 views
13

में सबमेनू कैसे जोड़ें नीचे दिए गए मेनू से मैं सबमेनू कैसे जोड़ूं? मैं खोलने के लिए, कहते हैं एक सबमेनू की जरूरत है,क्यूटी

"A->Setup" 

क्लिक करने के बाद मैं एक सबमेनू मुख्य मेनू के पक्ष के लिए खोला जा करना चाहते हैं।

void MyMenu::cppSlot() 
     { 
      QMenu *xmenu = new QMenu; 
      xmenu->addMenu("A -> Setup"); 
      xmenu->addMenu("B -> Setup"); 
      xmenu->addMenu("C -> Setup"); 
      xmenu->addMenu("D -> Setup"); 
      xmenu->addMenu("E -> Setup"); 
      //Change font and width 
      xmenu->setFont(QFont ("Courier", 10)); 
      xmenu->setFixedWidth(250); 
      //Colour setting 
      xmenu->setAutoFillBackground(true); 
      /*QPalette palette=xmenu->palette(); 
      palette.setColor(QPalette::Window, Qt::black); 
      palette.setColor(QPalette::Window, Qt::text); 
      palette.color(green) 
      xmenu->setPalette(palette);*/ 

      // Align the menu coordinates 
      // xmenu-> 
      xmenu->move(900,300); 

      xmenu->show(); 


     } 
+0

आपको बनाए गए सबमेनस में कार्रवाई जोड़ने की आवश्यकता है। यदि मेनू खाली है तो यह प्रकट नहीं होगा –

उत्तर

15

QMenu::addMenu() निर्मित उपमेनू में एक सूचक लौटाता है। आप सबमेनस के लिए क्रियाओं को जोड़ने के लिए इन पॉइंटर्स का उपयोग कर सकते हैं।

निम्नलिखित कोड:

QMenu *xmenu = new QMenu(); 
QMenu* submenuA = xmenu->addMenu("A"); 
QMenu* submenuB = xmenu->addMenu("B"); 
QMenu* submenuC = xmenu->addMenu("C"); 
QMenu* submenuD = xmenu->addMenu("D"); 
QMenu* submenuE = xmenu->addMenu("E"); 
QAction* actionA_Setup = submenuA->addAction("Setup"); 
QAction* actionB_Setup = submenuB->addAction("Setup"); 
QAction* actionC_Setup = submenuC->addAction("Setup"); 
QAction* actionD_Setup = submenuD->addAction("Setup"); 
QAction* actionE_Setup = submenuE->addAction("Setup"); 

(सुझाव: यह एक पाश के लिए रोता है)

इस तरह एक मेनू का उत्पादन करेगा:

Screenshot of the created menu

फिर आप कनेक्ट कर सकते हैं triggered() लौट आए कार्यों के सिग्नल (जैसे actionA_Setup)।