IPC mit QT

Alles rund um die Programmierung mit Qt
Antworten
DocBrain
Beiträge: 5
Registriert: 16. Mai 2006 15:44

IPC mit QT

Beitrag von DocBrain »

Hallöchen erstmal,

ich habe folgendes Problem. Ich soll für einen Beleg eine Interprozesskommunikation zwischen 4 Prozessen mit Hilfe von Semaphoren programmieren. Über den Sinn dessen soll hier aber nicht diskutiert werden. ^^
Um uns die Zeit noch weiter als bisher zu stehlen, sollen wir den Ablauf irgendwie grafisch aufbereiten. Das eigentliche Programm ist seit Wochen fertig, nur halt ohne knalligbunte Aufmachung für den Herrn Professor.

Nun dachte ich mir, dass jeder Prozess seinen Status einfach in einen Shared Memory schreibt oder per Message an den QTprozess sendet. QT sollte nun nichts weiter machen, als ein paar Smilies zu malen und je nach Status der anderen Prozesse diese Bilder durch andere zu ersetzen. In Opengl ist das alles kein Problem, da es da ja so ne Idleloop gibt in der man auf Messages warten kann oder regelmäßig den SHared Memory auslesen kann.
Allerdings fiel mir irgendwann auf, dass QT ja mit Signalen arbeitet und nun weiß ich nicht, wie ich dem QT prozess die Stati der anderen Prozesse übergeben kann.

Ich würde mich sehr über kleine Gedankenanregungen freuen.

Gruß
DocBrain
DocBrain
Beiträge: 5
Registriert: 16. Mai 2006 15:44

Beitrag von DocBrain »

*schubs*
DocBrain
Beiträge: 5
Registriert: 16. Mai 2006 15:44

Beitrag von DocBrain »

Dann versuch ich mal anders zu fragen...

Kann man Signale irgendwie von außerhalb an eine QTApplication senden? Bisher waren meine versuche mit QEvent nicht sehr erfolgreich. Obwohl ich nen Pointer auf meine Qmainwindow klasse hatte.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

DocBrain hat geschrieben:Kann man Signale irgendwie von außerhalb an eine QTApplication senden?
Ja, man kann. Allerdings machen wir es mit der Holzhammermethode, ich weiß auch nicht, ob es einen plattform übergreifenden Weg gibt. Es werden keine Messages direkt an eine App verschickt, sondern global heraus geschrien :) Ist auch durchaus möglich das mehrere Apps davon betroffen sind. Bisher reagiere ich auch nur auf solche Meldungen und versende keine, aber das sollte weniger das Problem sein. Bei Win empfange ich solche Messages mit dem winEventFilter(...), für Linux gibt es den x11EventFilter(...). Ob und wie es beim Mac geht, weiß ich nicht.
DocBrain
Beiträge: 5
Registriert: 16. Mai 2006 15:44

Beitrag von DocBrain »

Moin,

danke für den Hinweis.
Ich habs jetz mit Hilfe des QTimers gelöst, der alle paar ms die Methode aufruft den den Shared Memory ausliest.
Antworten