2012-12-10 3 views
13

Wie füge ich ein Untermenü aus dem Menü hinzu? Ich brauche ein Untermenü zu öffnen, sagen wir, nachSo fügen Sie ein Untermenü in Qt hinzu

"A->Setup" 

klicken ich ein Untermenü wollen an der Seite des Hauptmenüs geöffnet werden.

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

Sie müssen die Aktion zu den erstellten Untermenüs hinzufügen. Wenn das Menü leer ist, wird es nicht angezeigt –

Antwort

15

QMenu::addMenu() gibt einen Zeiger auf das erzeugte Untermenü. Sie können diese Zeiger verwenden, um Aktionen für die Untermenüs hinzuzufügen.

Der folgende Code:

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"); 

(Hinweis: Diese für eine Schleife schreit)

ein Menü wie folgt produzieren:

Screenshot of the created menu

Sie können dann eine Verbindung Steckplätze für das Signal der zurückgegebenen Aktionen (z. B. actionA_Setup).