Seite 1 von 1
Wie kann ich der Funktion end_fun Übergabeparameter übergebe
Verfasst: Dienstag 8. Mai 2012, 11:01
von winterfest
Hallo,
ich bin auf der Suche nache einer Möglichkeit
Übergabeparameter für die
Funktion, die beim Beenden des
Fensters (Tkinter) aufgerufen wird zu übergeben.
hier ein Code-beispiel:
Code: Alles auswählen
main_window[0].protocol('WM_DELETE_WINDOW', end_fun, [verbindung_zu_IPCModul])
Wie kann ich der Funktion end_fun Übergabeparameter übergeben?
So wie oben geht es nicht.
Grüße
Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 11:17
von Hyperion
Heißt das Ding evtl. `end_fun
c`?
Wenn Du das dynamisch regeln willst, dann kannst Du per `functools.partial` ein Callable erzeugen, welches die Funktion mit vorher definierten Parametern aufrufbar macht.
Nebenbei sehe ich aus Deinem Code-Beispiel nicht, wie Du das bisher versucht hast...
... und Fettdruck muss eigentlich nicht sein. Wir können bei so einem kleinen Beitrag schon die wichtigen Sachen heraus filtern

Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 12:47
von winterfest
Hallo,
ich habe versucht die Parameter
main_window[0].protocol('WM_DELETE_WINDOW', end_fun, [verbindung_zu_IPCModul])
so zu übergeben
Grüße
Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 12:54
von Hyperion
Genau das *so* hättest Du erklären sollen...

Als Parameter willst Du also eine Liste mit einem Element übergeben, also diesen Teil:
Das hätte doch schon als Erklärung ausgereicht! Natürlich habe ich mir das schon oben gedacht, aber ein wenig Präzision schadet eben nicht, wenn man Hilfe will! Wie können ja nicht ahnen, das `verbindung_zu_IPCModul` (ziemlich sperriger Name btw) nun genau der Parameter ist, den Du an `end_func` übergeben willst
Naja, ich habe Dir ja eine Lösung bereits verraten

Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 13:20
von winterfest
Wie auch immer....
ich habe es nun so gemacht.
Code: Alles auswählen
main_window[0].protocol('WM_DELETE_WINDOW', lambda:end_fun(verbindung_zu_IPCModul))
Danke für die Hilfe und Grüße
Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 13:23
von winterfest
@Hyperion... kannst Du Deine Lösung mal beschreiben?
Danke
Re: Wie kann ich der Funktion end_fun Übergabeparameter über
Verfasst: Dienstag 8. Mai 2012, 13:38
von BlackJack
Code: Alles auswählen
from functools import partial
# ...
main_window.protocol('WM_DELETE_WINDOW', partial(end_func, ipc_connection))