[gelöst] Toolbar Funktionen für andere QWidget freigeben?

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

[gelöst] Toolbar Funktionen für andere QWidget freigeben?

Beitrag von 24dan »

Hi, wie kann ich es ganz einfach ermöglichen das die Toolbar Funktionen meines Hauptprogrammes auch die QWidgets auf meinem QStackedWidget welche CentralWidget im Hauptprogramm gesetzt ist beeinflussen?

Ich habe da zB an "Drucken" oder "Speichern" oder "Alles Makieren" gedacht?

Mein bisheriges Konzept geht erstmal nicht.
Ich bekomme kein: connect Action im Hauptprog mit Oberflächenelemente meiner QWidget Test Klasse.

Jetzt kann ich sicher die Action was emit lassen was dann mein QWidget Test empfängt und ausführt. Okay. Problem wie kann dann in Abhängigkeit zur veränderten Oberfläche in meiner Qwidget Test die Toolbar Action im Hauptprogramm SetEnabled werden? Also die Kommunikation auch andersherum läuft?

Sicher das einfachste ist es jedem QWidget seine eigene Toolbar zu geben. Aber das bedeutet viel Programmierung (alles doppelt), viel Pflege und das ist immer viel Ärger. :roll:
Zuletzt geändert von 24dan am 2. Mai 2010 16:52, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Irgendwie ist deine Beschreibung arg konfus :D
(Oder ich bin noch nicht zurechnungsfähig)

Du kannst nicht einfach eine "QAction was mit emit lassen", du kannst höchtsens eine Methode von QAction aufrufen, die ihrerseits dann die getätigte Änderung an die Außenwelt mit einem emit() signalisiert.
Und der Weg andersherum: Die Widgets die in deinem QStackedWidget liegen als eigene Klassen (natürlich von QWidget abgeleitet) konzipieren.
Wenn sich in denen dann was ändert hast du das emit() selber in der Hand. Dann brauchst du das SIGNAL nur an die jeweilige QAction connecten und - voila - die QAction kann sich ändern :)
Ich würde in dem Fall bei einer Änderung des aktuellen QStackedWidget-Widgets die alten Verbindungen trennen, damit eine Änderung eines nicht angezeigten Widgets nicht plötzlich deine Toolbar ändert ;)
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Sehr gut, danke Du hast mich auf jeden Fall richtig verstanden.

Sorry das mit Action emit war zu kurz beschrieben jedoch genauso gemeint wie von Dir nochmal klargemacht.

Ich versuche das mal auf die Beine zu stellen. :wink:
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich habe mir für soetwas eine ähnliche Klasse wie die KActionCollection aus KDE nachgebaut. Schau dir diese mal an.
Antworten