2012-12-10 45 views
13

Làm cách nào để thêm menu phụ từ menu bên dưới? Tôi cần một menu phụ để mở, giả sử, sau khi nhấp vàoLàm thế nào để thêm menu con trong Qt

"A->Setup" 

Tôi muốn một menu con được mở ở bên cạnh menu chính.

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

Bạn cần thêm hành động vào menu con được tạo. Nếu menu trống, nó sẽ không xuất hiện –

Trả lời

15

QMenu::addMenu() trả về con trỏ đến menu con đã tạo. Bạn có thể sử dụng các con trỏ này để thêm hành động cho menu phụ.

Các mã sau đây:

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

(Gợi ý: Đây khóc cho một vòng lặp)

sẽ tạo ra một thực đơn như thế này:

Screenshot of the created menu

Bạn có thể sau đó kết nối các khe đến tín hiệu triggered() của các hành động được trả về (ví dụ: actionA_Setup).

Các vấn đề liên quan