Mit Event weitere Argumente übergeben

Fragen zu Tkinter.
Antworten
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Samstag 25. November 2006, 23:43

Hallo,

ist es irgendwie möglich, zusätzlich zu dem Argument Event weitere zu übergeben, in etwa so

Code: Alles auswählen

from Tkinter import *

def Eingabefeld():
    root=Tk()
    Eingabe=Entry(root)
    Eingabe.pack()
    Eingabe.bind('<KeyPress-Return>', lambda: Eingabe.get())
    Eingabe.bind('<KeyPress-a>', Drucke(Eingabe)) #Das soll noch dazu
    root.mainloop()

def Drucke(event, Text):
    print Text
    
Eingabefeld()
Wenn ich das Ausführe erhalte ich diese Fehlermeldung
unhandled TypeError
"Drucke() takes exactly 2 arguments (1 given)"
Wie schaff ich es, weitere Argumente zu übergeben, wenn ich ein Event auslöse?

Danke
BlackJack

Sonntag 26. November 2006, 10:17

Du musst das `Entry`-Objekt noch an einen Namen in der Lambda-Funktion binden und die Funktion muss natürlich auch das Event als erstes Argument entgegennehmen:

Code: Alles auswählen

import Tkinter as tk

def eingabefeld():
    root = tk.Tk()
    eingabe = tk.Entry(root)
    eingabe.pack()
    eingabe.bind('<KeyPress-Return>', lambda: eingabe.get())
    eingabe.bind('<KeyPress-a>', lambda e, x=eingabe: drucke(e, x.get()))
    root.mainloop()


def drucke(event, text):
    print text


def main():
    eingabefeld()
basti33
User
Beiträge: 56
Registriert: Donnerstag 24. August 2006, 15:05

Sonntag 26. November 2006, 12:13

Vielen Dank!
Antworten