Hallo,
ich habe ein kleines Problem...
ich habe verschiedene eigene Widgets geschrieben. Der Übersichtlichkeit halber habe ich, wenn z.B. Menu Einträge oder ToolBar Einträge vorhanden sind, diese in den eigentichen Widget-Klassen definiert. Wenn ich nun ein Object eines Widget erzeuge, wird im Konstruktor des Widgets eine Funktion aufgerufen, welche die Menueinträge in das Menu des Parent-Widgets einträgt.....
Jetzt die eigentliche Frage.....
wie kann ich auf das parent-widget (QMainWindow) zugreifen und ein QMenu aus dem unter Widget in die MenuBar einfügen!? Wie kann ich in der InitializeMenuEntry() Funktion des Widgets auf die UI-Elemente des parent-Widgets zugreifen???
grüße
gogonfa
Auf UI-Elemente des parent-Widgets zugreifen
würd ich gar nicht machen ....
Dein parent muss dein Widget kennen, dein widget wieder soll details ueber dein parent kennen. das fuehrt meistens zu problemen.
Entkoppeln koenntest du das ueber 2 wege.
1. schnittstellen. Dein Mainwidget implementiert eine schnittstelle zum hinzufuegen von command-objecten. Dein anderes widget bekommt die schnittstelle, und fuegt dort selber die commandos ein die es unterstuetzt, inklussive der funktion(auch wieder ueberschnittstelle) die ausgefuehrt werden soll . Das mainwidget manipuliert dann die menueintrage selber.
2. Signal/slots.
dein wigdet sendet Signale wenn es ein commando hinzufuegen will, und dein mainwidget hoert drauf. In den parametern gibst irgendwie ne ID an, welche funktion ausgefuehrt werden soll.
Dein mainwidget legt dann den menupunkt an und verdrahtet den auch mit dem widget ueber signal /slot mechanismus so , das eine zentrale funktion am widget aufgerufen wird, mit der ID als parameter, damit das widget weiss was es tun soll.
Ciao ...
Dein parent muss dein Widget kennen, dein widget wieder soll details ueber dein parent kennen. das fuehrt meistens zu problemen.
Entkoppeln koenntest du das ueber 2 wege.
1. schnittstellen. Dein Mainwidget implementiert eine schnittstelle zum hinzufuegen von command-objecten. Dein anderes widget bekommt die schnittstelle, und fuegt dort selber die commandos ein die es unterstuetzt, inklussive der funktion(auch wieder ueberschnittstelle) die ausgefuehrt werden soll . Das mainwidget manipuliert dann die menueintrage selber.
2. Signal/slots.
dein wigdet sendet Signale wenn es ein commando hinzufuegen will, und dein mainwidget hoert drauf. In den parametern gibst irgendwie ne ID an, welche funktion ausgefuehrt werden soll.
Dein mainwidget legt dann den menupunkt an und verdrahtet den auch mit dem widget ueber signal /slot mechanismus so , das eine zentrale funktion am widget aufgerufen wird, mit der ID als parameter, damit das widget weiss was es tun soll.
Ciao ...
Hallo...
danke für die Antwort.....
ich bin Deinem Rat gefolgt, und habe in meinem Widget eine Funktion bereitgestellt, die wenn Sie durch das Parent-Widget aufgerufen wird ein QMenu zurück liefert welches dann im Menu des Parent-Widgets eingebunden wird.....
das funzt gut....
vielen Dank nochmal....
Gogonfa
danke für die Antwort.....
ich bin Deinem Rat gefolgt, und habe in meinem Widget eine Funktion bereitgestellt, die wenn Sie durch das Parent-Widget aufgerufen wird ein QMenu zurück liefert welches dann im Menu des Parent-Widgets eingebunden wird.....
das funzt gut....
vielen Dank nochmal....
Gogonfa