Seite 1 von 1

Dynamische Menüs bei MDI-Anwendung

Verfasst: 1. Juli 2009 10:09
von JoseMan
Hi,

ich stehe mal wieder vor einem Problem:
Ich habe eine MDI-Applikation und eine QMenuBar mit paar Menus (File,About).
Nun möchte ich, wenn ich ein neues Childwindow erstelle(öffne) die Menüs verändern, die Menüs + Menüeintrage sind abhängig vom Inhalt des Childwindow.
Z.b. möchte ich das Menü "About" löschen, einen Menüpunkt "XYZ" anhängen und den Menüpunkt "About" wieder einsetzen (also Hilfe/About steht ja meist am Ende der MenuBar).

Ich finde jedoch keine Methode QMenuBar::removeMenu(..) oder ähnliches.
Also, weis weis jemand wie ich vorzugehen habe?

Danke, Ciao J--

Verfasst: 1. Juli 2009 10:22
von upsala
QMenu/QAction löschen/disablen

Verfasst: 1. Juli 2009 10:31
von JoseMan
QMenu/QAction löschen/disablen
Was heist das genau? QMenu löschen; QAction disablen?
Wie lösche ich ein QMenu, darum ging es mir doch.....

Sorry, aber ich verstehe nicht so recht.

Verfasst: 1. Juli 2009 10:59
von upsala
http://doc.trolltech.com/4.4/qmenu-members.html
http://doc.trolltech.com/4.4/qaction-members.html

Code: Alles auswählen

QMenu *menu;
delete menu;
menu->deleteLater();
menu->hide();
menu->setVisible(false);
Aber nicht alle Möglichkeiten gleichzeitig verwenden...
Sorry, disabled war nicht der richtige Ausdruck, ich meinte hide(), wobei setDisabled(true) natürlich auch eine schöne Möglichkeit wäre.

Verfasst: 1. Juli 2009 11:05
von JoseMan
Ahh, okay. das macht Sinn. Ich habe nämlich auch versucht die Menus irgendwie zu löschen, aber ebend ohne Erfolg.
Ich danke für die Antwort, aber ich hatte es jetzt *satt* :? .
Ich mache das jetzt so:
Im Konstruktor des ChildWindow generiere ich eine neue QMenuBar mit allen spezifischen Menüs, und tausche einfach mit

Code: Alles auswählen

mainWindow->setMenuWidget(newMenuBar);
die MenuBar des MainWindows aus.
Is a bissl umständlicher, aber ich bin jetzt zu weit fortgeschritten damit...

Danke + Ciao J---

Verfasst: 9. September 2010 13:33
von DVuellers
Hallo JoseMan,
leider habe ich das gleiche Problem wie Du...
Wenn man der Qt-Doku glaubt, ist das Austauschen des Menubars eigentlich nicht erlaubt...
Hast Du noch irgendwelche Probleme mit dieser Implementierung bekommen?

Ciao, Dieter