Funktionsaufruf durch Enterdruck im Entry Widget KLAPPT NICH

Fragen zu Tkinter.
Antworten
geogre
User
Beiträge: 41
Registriert: Mittwoch 20. April 2005, 13:26

Hallo,
ich habe gerade erst mit python angefangen, daher bitte ich um entschuldigung falls meine frage blöd ist oder hier falsch:

ich habe ein funktion die fängst so an...

def funxion():

die rufe ich einmal mitten aus dem script auf mit

a=funxion()

was auch funktioniert.

ein weiteres mal rufe ich sie mit einem button auf

scancsvbutton=Button(frame,text = "Funxion", command = funxion)

was ebenfalls klappt.

aber nun (!) :

weiterhin möchte ich sie auf "return" druck hin in einem entry widget mit bind aufrufen:

eingabefeld = Entry(frame)
eingabefeld.pack(side=RIGHT,fill=X,expand=1)

eingabefeld.bind("<Return>", funxion)

DAS GEHT LEIDER NICHT!
wegen

funxion() takes no arguments (1 given)

ich habe einige sachen probiert, z.b. bei der def. noch eine variable in die klammern zu schreiben, dann kommt die fehlermeldung genau umgekehrt... wer kann mir helfen, ich habe schon sehr viel gesucht im internet und weiss nicht mehr wonach ich suchen soll..

DANKE FÜR JEDE HILFE!
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!
Python hat geschrieben: funxion() takes no arguments (1 given)
Der Tastendruck schickt einen event an Deine Funktion (das ist recht nützlich, falls Du mal wissen willst welche Taste gedrückt wurde). Das ist also dieses ominöse Argument, mit dem Deine Funktion nichts anfangen kann :wink:
Mögliche Lösung:

Code: Alles auswählen

def funxion(event=None):
...
Gruß, mawe
geogre
User
Beiträge: 41
Registriert: Mittwoch 20. April 2005, 13:26

tausend dank !!!
ist ja eigentlich ganz einfach ;) ähem...
da hatte ich sehr lange nach gesucht... super!
Antworten