Dynamische Menüs bei MDI-Anwendung

Alles rund um die Programmierung mit Qt
Antworten
JoseMan
Beiträge: 121
Registriert: 4. März 2009 18:09

Dynamische Menüs bei MDI-Anwendung

Beitrag 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--
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QMenu/QAction löschen/disablen
JoseMan
Beiträge: 121
Registriert: 4. März 2009 18:09

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
JoseMan
Beiträge: 121
Registriert: 4. März 2009 18:09

Beitrag 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---
DVuellers
Beiträge: 1
Registriert: 5. Mai 2010 13:22
Wohnort: Lippstadt

Beitrag 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
Antworten