Diskussion:Signal-Slot-Konzept

message: Tut mir leid, kenne Funktionszeiger, Callbacks, Delegates, das Observer Pattern, etc... also was Ereignisbehandlung angeht verstehe ich durchaus das Konzept, und die die Syntax mehrerer Sprachen, aber was dieses Beispiel betrifft kann ich nur raten. 
Wenn du keine Lust hast den Code zu dokumentieren und die zugrundelegende Syntax zu erörtern solltest du wenigstens einen Link auf eine entsprechende Referenz einfügen.
Vielleicht bin ich ja auch schlicht weg zu dumm (kommt gelegentlich schon mal vor :)
3 Fragen - mit den Augen eines staunenden Kindes:
1. Wo ist die Implementierung zu "void wertGeaendert(int);" wenn du den Code für setzeWert() und wert() angibst, warum nicht auch für wertGeaendert() ? Und das obwohl hier das ominöse emit zur Anwendung kommt. Ist es überhaupt eine klassische Methoden-Deklaration ? (Natürlich nicht aber ich muss ja raten :) Wenn ja, was deklarierst du hier sonst ?
::Ich deklariere ein Signal. Ein Signal braucht nicht von implementiert werden. Das mach der Meta-Objekt-Compiler! --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)
replies: text: Lese dir doch den Artikel mal durch. Das steht doch in der Übersicht. --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)
replies: text: Ja es kommt eine Makroprozessor zum Einsatz. --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)

text:  Der Unterschied liegt daran, dass Funktionszeiger keine Typsicherheit und keine wirklichen unabhängigen Obejekte ermöglichen, da das Zielobjekt die Typen des Quellobjektes kennen muss. --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)

text: Im Prinzip hast du recht. Das Verfahren ist echt abgefahren. Doch kann man es in der Qt-Dokumentation gut nachlesen. Vielleicht findet sich jemand, der das besser in Worte fassen kann. Ich werde versuchen es noch etwas auszubauen. --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)

text:  Es ist leider alles etwas Komplizierter. Wikipedia ist kein Forum um dir Qt-Programmierung beizubringen. Doch hast du natürlich recht, dass die Artikel in der Wikipedia verständlich sein sollten. Vielleicht finde ich oder irgendjemand anderes noch Zeit das etwas weiter auszubauen. Unter Qt gibt es weiterführende Links. Viel Spaß. --Thornard, Diskussion, 01:29, 11. Okt. 2006 (CEST)
thread_title:  Code Beispiel, nicht nachvollziebar 

message: Wenn du ein klassisches Callback machst, gibst du einen Pointer auf eine Funktion, verlierst aber die "Signatur", also die Information, ob und welche Art von Argumenten deine Callback-Funktion hat. Wenn du jetzt eine Funktion als Callback registriert, die nicht "passt", stürzt dein Programm ab. Bei Signals und Slots hast du die Information über die Argumente im Signalnamen mit drinn: SIGNAL(valueChanged(int)). Das int in Klamern sagt aus, dass das Signal nur mit einem Slot verbunden werden kann, der ein int erwartet (oder weniger). Wenns nicht passt, klappt das Connect nicht und es kommt eine Warnung auf der Konsole. Das ist der Vorteil: Kein kryptischer Absturz, sondern eine Überprüfung, ob es passt, bevor es knallt.
--130.83.220.159 23:18, 1. Jan. 2009 (CET)
thread_title: Neuer Erklärungsversuch

message: Ich währe dafür, dass man bei den Beispielen den von Wikipedia eingesetzten Highliter hier zuverwenden. Als Style würde ich "cpp-qt" vorschlagen. Bitte auf rückmeldung von euch. -- Sebi-Book 16:31, 5. Nov. 2009 (CET)
replies: text: Ja klar, warum nicht?--Ma-Lik  ?  +/- 18:03, 5. Nov. 2009 (CET)
replies: text: Habs nun mal geändert. -- Sebi-Book 01:09, 7. Nov. 2009 (CET)
replies: text: "Warum nicht?": Weil man in der alten Version (rote Hervorhebung der Signale, Slots usw.) sofort die Änderungen gegenüber einem anderen Programm erkennen kann. Ich finde das sehr viel wichtiger und für den Artikel verständlicher als die bunte Hervorhebung der C++-Syntax, auf die es in dem Beispiel gar nicht ankommt (da hilft es auch nicht, daß es einen speziellen cpp-qt-Style gibt). Im jetzigen Artikel muß man die wichtigen Stellen ja erst suchen. Ich bin für eine Wiederherstellung der vorherigen Version. 93.195.180.213 16:01, 16. Feb. 2010 (CET)
thread_title: 2. und 3. Code-Beispiele: Highliter

message: Ist das Konzept das selbe wie das DataBusPattern? s. http://c2.com/cgi/wiki?DataBusPattern? 
(Geht es hier um ein Abstraktes Konzept? Hat nur QT das? Lässt sich das ganze auch als abstrakter Code ohne QT/Präprozessor usw. beschreiben?)
Der ganze erste beschreibende Absatz geht etwas daneben soweit ich das beurteilen kann (wollte ja eben rausfinden was Signal/Slot genau ist). Zum einen unterscheidet sich Signal/Slot ja gerade fundamental vom Observer darin, dass die Teilnehmer sich *nicht kennen* müssen. Zum anderen sind "Callbacks" ja eben schon *Typsicher* (ein Callback ist in C ein Funktionszeiger. Als solcher hat er einen Type der seine Argumente beinhaltet.) (nicht signierter Beitrag von 188.174.85.233 (Diskussion) 16:56, 12. Dez. 2014 (CET)
thread_title:  Unterschied zu DataBusPattern?