ToolBar mit Untermenüs

Alles rund um die Programmierung mit Qt
Antworten
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

ToolBar mit Untermenüs

Beitrag von nexus »

Hallo,

wie kann man eigendlich ToolBar Buttons mit Untermenüs belegen? Währe für Hilfe dankbar :)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

void QToolButton::setMenu ( QMenu * menu )
oder ungetestet:

Code: Alles auswählen

QToolBar::addAction(QAction *)
QAction *QMenu::menuAction () const
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Mal wieder danke für deine Anwort :D Habs jetzt nach deinem zweiten Vorschlag realisiert, jedoch hab ich noch eine Frage dazu. Wenn ich in dem Auswahlmenü auf eine Action klicke wird diese ausgeführt. Ist es jetzt auch möglich eine Action auszuführen in dem man auf das Icon von dem erstellten Menü klickt?
Hoffe ich habs verständlich rübergebracht :roll:
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal versucht die menuAction mit einem eigenen Slot zu verbinden?
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Kannst du das etwas genauer erklären?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

QMenu *menu=new QMenu();
toolBar->addAction(menu->menuAction());
connect(menu->menuAction(), SIGNAL(triggered()), ...);
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Ja danke, funktioniert :)
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

habe selber grad damit ein problem wollte via ToolBar button
eine Menu anzeigen lassen, geht grad nicht bei mir.

Mit QPushButton gehts bei mir ohne probleme.
wenn man es so macht:

Code: Alles auswählen

QMenu * menu = new QMenu();
    menu->addAction(QIcon(), tr("Online"));
    menu->addAction("Busy");
    menu->addAction("Away");
    menuButton->setMenu(menu);
Function zum aufrufen des setMenu vom ToolBar Button Tools:

Code: Alles auswählen

    addAction(new QAction(QIcon(IMAGE_TOOLS), tr("Tools"), ui.toolBar), SLOT(setMenu2()));    

Code: Alles auswählen

void MainWindow::setMenu ( ) 
{
    QMenu menu( this );
    
    actionHandbook = new QAction(QIcon(), tr( "HandBook" ), this );
    connect( actionHandbook , SIGNAL( triggered() ), this, SLOT( on_action_Handbook_activated() ) );

    menu.addAction( actionHandbook);
    menu.addSeparator();

}

void MainWindow::setMenu2 ( ) 
{
    QMenu *menu = new QMenu();
    
    menu->addAction(ui.action_Handbook);
    ui.action_Handbook->setIcon(QIcon(":/address-book-new.png"));

    connect( ui.action_Handbook , SIGNAL( triggered() ), this, SLOT( on_action_Handbook_activated() ) );
  

}




also die 2 verschiedenen QMenu methoden haben bei mir nichts gebracht,
aber das eine obere beispiel von upsala geht bei mir auch.

Weis jemand mehr über QMenu? wie ich das problem lösen kann?
Antworten