Seite 1 von 1

anfängerproblem: Wertrückgabe (beantwortet!)

Verfasst: Dienstag 24. März 2009, 14:55
von sylpheed
folgendes problem: habe eine funktion, die durch ein event ausgelöst wird. also so in etwa aussieht:

>> self.button.connect("clicked", self.funktion)

wobei funktion einen wert zurück geben soll. nur weiß ich nicht, wie ich den zuweisen soll.

>> tmp = self.button.connect("clicked", self.funktion)

würde ja die handlerID liefern und

>> self.button.connect("clicked", tmp = self.funktion)

ist nicht nur seltsam, sondern geht ja auch nicht ^^.
hoffe mal, dass ich jetzt nicht das trivialste übersehen habe und danke im voraus für antworten.

greetz

Verfasst: Dienstag 24. März 2009, 15:31
von Barabbas
Wie ich immer wieder feststelle, bin ich alles andere als ein Python-Profi, aber soweit ich weiß, ist das nicht möglich.
Du verbindest ja das Widget mit dem Signal, *bevor* überhaupt das Ereignis auftritt - oder anders gesagt: Du übergibst dem connect-Signal zwar eine Funktion, die führst du aber nicht aus.
Und selbst wenn der Rückgabewert irgendwie abzufangen wäre, würde es dir nichts bringen, da zu dem Zeitpunkt, an dem das Signal und die damit verbundene Funktion ausgelöst wird, die entsprechende Zeile deines Codes ja schon lange abgearbeitet worden ist (sonst könnte das Signal ja nicht ausgelöst worden sein).

Da du ja offensichtlich mit Klassen arbeitest, kannst du das Ergebnis der Funktion doch einfach in eine Klassenvariable ablegen und dann später - wenn du es benötigst - wieder auslesen.

Sonst beschreibe einfach etwas genauer, was du vorhast... es gibt sicher eine Lösung :)

hth

Barabbas

Verfasst: Dienstag 24. März 2009, 15:43
von sylpheed
*g* joar, ne klassenvariable sollte dafür wirklich genügen - war also doch das trvialste. danke dir für die schnelle antwort. danke mein problem sollte damit behoben sein.

Verfasst: Dienstag 24. März 2009, 17:57
von Leonidas
Ich würde eher zu Instanzvariablen raten.