Ein Event an alle Fenster schicken

Alles rund um die Programmierung mit Qt
Antworten
sascha
Beiträge: 37
Registriert: 12. Januar 2006 11:01

Ein Event an alle Fenster schicken

Beitrag von sascha »

Hallo!

Wie kann ich es schaffen, das ich ein Event an alle Fenster schicke?

Sprich ich habe eine Klasse, in der wird "zufällig" ein Event erzeugt... Dieses Event soll nun aber nicht nur ein ein Widget geschickt werden, wie es ja mit

Code: Alles auswählen

QApplication::postEvent(...)
möglich ist, sondern dieses Event soll an alle offenen Fenster meiner Applikation geschickt werden... Ich denke auch das es sinnvoller so ist, da das Event ja eigentlich nciht wissen kann (soll), an wen es geschickt werden soll......

Hat jemand eine Idee??
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Ein Event an alle Fenster schicken

Beitrag von macman »

Dein Workspace sollte wissen welche Fenster auf sind, schick das Signal dahin und verteil es an die betroffenen Fenster.
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

es gibt die Methode QApplication::queryList, die einen Zeiger auf eine Widgetlist mit allen im Speicher vorhandenen Fenstern liefert (also auch die bereits geschlossenen). Dann müsstest Du nur noch prüfen, ob die Fenster 'visible' sind und könntest die Nachricht mit sendEvent (oder asynchron mit postevent) an die Fenster versenden.

Die (durch den Aufruf von QT mit new erzeugte) QWidgetList musst Du anschliessend mit delete löschen

Gruss Arne
sascha
Beiträge: 37
Registriert: 12. Januar 2006 11:01

Re: Ein Event an alle Fenster schicken

Beitrag von sascha »

macman hat geschrieben:Dein Workspace sollte wissen welche Fenster auf sind, schick das Signal dahin und verteil es an die betroffenen Fenster.
Was meinst Du damit?
Soll das heißen, dass es unter C++ Standard ist, dass sich mein MainWindow merkt, welche Dialoge er besitzt und welche davon geöffnet sind und welche nicht?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Ein Event an alle Fenster schicken

Beitrag von macman »

sascha hat geschrieben:Soll das heißen, dass es unter C++ Standard ist, dass sich mein MainWindow merkt, welche Dialoge er besitzt und welche davon geöffnet sind und welche nicht?
Nein, natürlich nicht, das mußt Du schon selbst managen. Guck dir mal das MDI-Beispiel an, dann wird es vielleicht klarer.
Antworten