Code: Alles auswählen
public final Signal1<Integer> destroyedSignal = new Signal1<Integer>();
Genauer gesagt sind es Klassen die alle ein Interface implementieren, welches vom Runnable Interface abgeleitet ist und alle Klassen sind von QSignalEmitter abgeleitet. Aber das spielt glaube ich nicht wirklich eine Rolle. Es geht ja ums Prinzip.
Ich möchte jetzt von zig Instanzen der Klassen immer von allen das destroyedSignal zu ein und derselben Methode in einer bestimmten anderen Klasse connecten. Ich denke obs immer zu derselben oder zu verschieden ist, spielt auch nicht wirklich eine Rolle.
Connecten will ich es in meinem Fall zu der klasse wo die Instanzen auch erzeugt werden und ich will es auch direkt aus dieser Erzeugungsklasse machen, da dort eh eine Schleife über alle läuft was aktuell erzeugt werden soll und ich auch nicht die Konstruktoren der erzeugten Klassen verändern will um die Erzeugungsklasse mitzugeben, damit dort das connecten stattfindet. Es könnte ja auch sein, dass man es zu einer anderen Klasse connecten will und die noch gar nicht existiert. Zudem ist es blöd in 20 Klassen alle Konstruktoren zu verändern und innerhalb immer die gleiche blöde connect Zeile copy und pasten. Das ist wahrlich keine Programmierkunst (aber aktuell meine Notlösung).
Ich spreche also alle neu erzeugten Instanzen der Klassen dynamisch über den Typ des Interface an. (diese werden tatsächlich auch in anderen Methoden erzeugt, die mir Objekte mit Typ des Interfaces zurückgeben. Was ich mache ist die ins Array vom Typ des Interfaces zu packen).
Das Problem ist jetzt aber, ich kann die Signale nicht connecten. Ich kann nicht der beliebigen instanz "a" der Klasse A, die Interface B implementiert, wobei "a" aktuell ja vom Typ B ist sagen: (weil Eclipse meckert)
Code: Alles auswählen
a.destroyed.connect(...);
Code: Alles auswählen
((A) a).destroyed.connect(...);
Macht QtJambi das nun futsch, oder kriegt man das irgendwie gebacken?
Fehlt einem fast sowas wie ein Interface über Signalen ... oder die Möglichkeit in Interfaces ausser Methoden noch Signale angeben zu können. Ich kann in meinem Fall übrigens auch nicht die Kommunikation über Methoden regeln, da in meinem Fall ja alle Instanzen irgendwelche Arten von Threads sind und ich ja deswegen nur per Signale aus denen heraus kommunizieren kann.
Hoffe mich hat einer verstanden, was ich meine. Ansonsten fragt nochmal nach
Muss doch irgendeinen Fachmann geben, der die Antwort kennt