2016-08-07 24 views
0

ich meine UI von Qt Designer erstellen und generares diesen Code:QAction zeigt nicht QMenu

toolBar = new QToolBar(MainWindow); 
QIcon icon; 
icon.addFile(QStringLiteral(":/main"), QSize(), QIcon::Normal, QIcon::Off); 
MainWindow->addToolBar(Qt::TopToolBarArea, toolBar); 
actionConvert = new QAction(MainWindow); 
actionConvert->setObjectName(QStringLiteral("actionConvert")); 
actionConvert->setIcon(icon); 
toolBar->addAction(actionConvert); 

Nun, zurück in meinem Frame-Code:

QMenu *menuAdd = new QMenu (this); 
menuAdd->addAction (tr("&Files...")); 
menuAdd->addAction (tr("&Directory...")); 
ui->actionConvert->setMenu (menuAdd); 

Als ich das laufen Anwendung Ich kann die qaction in der Symbolleiste auch den nach unten zeigenden Pfeil sehen, der anzeigt, dass es ein Menü gibt, aber wenn ich es anklicke, erscheint das Menü nicht ... irgendwelche Ideen? > AddMenu (tr ("Code -

this-> ueSetCodeRegisterMenu (this-> menuBar():

void MainWindow::ueInitMenu() 
{ 
    this->ueSetCodeRegisterPlacesAction(new QAction(tr("Places"), 
             this)); 
    this->ueCodeRegisterPlacesAction()->setShortcut(tr("Ctrl+P")); 
    this->ueCodeRegisterPlacesAction()->setStatusTip(tr("Shows places code register")); 

    connect(this->ueCodeRegisterPlacesAction(), 
      SIGNAL(triggered()), 
      this, 
      SLOT(ueSlotShowPlacesView())); 

    this->ueSetCodeRegisterMenu(this->menuBar()->addMenu(tr("Code register"))); 
    this->ueCodeRegisterMenu()->addAction(this->ueCodeRegisterPlacesAction()); 
} // ueInitMenu 

especialy die Zeile:

Antwort

0

Sie sollten Menü mit menuBar() Methode wie in meinem Fall hinzufügen registrieren"))); so in Ihrem Fall:

this->menuBar()->addMenu(tr("System menu"); 

und dann actions hinzufügen. Werfen Sie auch einen Blick auf Menus Example.

0

Mit Ihrem Beispielcode scheint nichts falsch zu sein.

Es ist möglich, dass Sie das Menü nicht sehen, weil Sie die Taste einige Sekunden lang gedrückt halten müssen, damit das Menü angezeigt wird. Ein einzelner Klick führt nur die normale Aktion der Schaltfläche aus.

Siehe: QToolButton::ToolButtonPopupMode.