Zugriff auf das Applikations-Menü unter OS X

Alles rund um die Programmierung mit Qt
Antworten
rkeese
Beiträge: 5
Registriert: 22. Mai 2009 23:27

Zugriff auf das Applikations-Menü unter OS X

Beitrag von rkeese »

Hallo,
ich möchte auf das Applikations-Menü unter OS X zugreifen und dort auf den
Menüpunkt "Einstellungen".
Wenn ich bei gestarteter Applikation auf den Menüpunkt klicke, soll sich mein Einstellungsdialog öffnen.
Trotz intensiver Recherchen zu diesem Thema bin ich noch nicht fündig geworden, wie ich von Qt aus diesen Menüteil erreichen kann.
Ich verwende Qt 4.5.1 mit dem Qt Creator 1.1.0.
Ich würde mich sehr freuen, wenn mir hier jemand weiterhelfen kann.
MfG
Raimund
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Einfach den Menueintrag "Settings" benennen und der Rest geht von alleine. Hab ich letztens ausprobiert, wird auch automatisch in Einstellungen umbenannt. Hoffe es hilft weiter.

Michael
rkeese
Beiträge: 5
Registriert: 22. Mai 2009 23:27

Beitrag von rkeese »

Hallo Michael,
vielen Dank für Deinen Hinweis.
Leider hat er mich noch nicht so richtig weitergebracht.
Vermutlich habe ich noch ein grundsätzliches Verständnisproblem mit der Menübehandlung unter Mac OS .
Im folgenden führe ich die Code-Zeilen auf, mit denen ich den Zugriff versucht habe:

QMenuBar* pmbar;
pmbar = menuBar();
QAction* settingsAction = pmbar->addAction(tr("Settings"));
connect(settingsAction,SIGNAL(triggered(bool)),this,SLOT(on_settings()));

Wenn ich das ausführe habe ich einen zusätzlichen Menüeintrag "Settings".
Michael, vielleicht kannst Du mir noch die Objekt-Instanz nennen auf die ich zugreifen muß.
MfG
Raimund
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Schreib mal "settings" klein.
Steht so in "QMenuBar on Mac OS X" in der Doku zu QMenuBar
rkeese
Beiträge: 5
Registriert: 22. Mai 2009 23:27

Beitrag von rkeese »

Hallo franzf,
da ändert sich nichts, d.h. das Verhalten ist das Selbe.
Gruß
Raimund
rkeese
Beiträge: 5
Registriert: 22. Mai 2009 23:27

Beitrag von rkeese »

Ich habe noch etwas experimentiert und eine Lösung gefunden:

QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
editMenu->addAction(tr("&Preferences"), this, SLOT(on_settings()), tr("Ctrl+,"));

Durch das Anlegen des Preferences-Eintrags im Edit-Menü wird dieser automatisch im Applikations-Menü übernommen.
Das Edit-Menü ist in diesem Fall nicht erschienen.
Nochmals vielen Dank für Eure Hinweise.
Viele Grüße
Raimund
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Ich habe im Designer alle Positionen im Menu getestet und das "Einstellungen" Menueintrag landet immer im Applikationsmenue.

Michael
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Ich habe die, glaube ich, richtige Lösung:

Code: Alles auswählen

actSettings->setMenuRole(QAction::PreferencesRole);
Damit kann der Menueintrag heißen wie er will!!!

Michael
Antworten