anfängerproblem: Wertrückgabe (beantwortet!)

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

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
Zuletzt geändert von sylpheed am Mittwoch 25. März 2009, 01:03, insgesamt 2-mal geändert.
Barabbas
User
Beiträge: 349
Registriert: Dienstag 4. März 2008, 14:47

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
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

*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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich würde eher zu Instanzvariablen raten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten