Frage

Ich verwende LibSsigc ++, um eine Anwendung zu verdrahten, und ist nicht sicher, wie einfacher die Art und Weise, wie sie vorgehen können.

Es gibt eine bereits bestehende Objekthierarchie, die die Datenebene verwaltet, und das Objekt auf der obersten Ebene enthält alle Funktionen. Alles gut bisher.

Dazu füge ich eine GUI -Objekthierarchie hinzu und habe sie im Anwendungsobjekt zusammen mit Signalverbindungen zusammen. Um eine Verbindung herzustellen, brauche ich Hinweise sowohl auf den Absender als auch auf den Empfänger.

Haken ich nun ein Kinder -Widget, weit unten im Baum, direkt ein und verlangt so, dass Zeiger den Baum auf und ab geleitet werden?

Oder gehe ich bei jedem Schritt in der Kette die sorgfältigen Prozesse des Hakens in Signalen und Slots durch?

Einerseits brechen die Übergabe von Zeigern die Trennung, dass das Sig-Slot-Modell Sie kauft. Auf der anderen Seite scheint es nicht zu reimen, Verbindungen bei jedem Schritt mit der vermeintlichen "Ereignis-Telepathie" zu reimen, die die Sig-Slots bieten sollen.

Welcher würde jemand mit diesem Modell den Standardansatz betrachten?

War es hilfreich?

Lösung

Persönlich sehe ich kein Problem, indem ich Schichten mit dem Signal-/Slots -Mechanismus "überspringe". Ich bevorzuge es so: Eine Komponente sendet Signale in die Wildnis, und wer auch immer an diesen Signalen interessiert ist, kann ihnen zuhören.

Ein paar Tipps: Vermeiden Sie es, Signale zu senden, die zu allgemein sind, und verlassen Sie sich nicht auf die Reihenfolge der Ausführung der Slots (wenn viele Slots für ein bestimmtes Signal gefordert werden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top