
Kann mir bitte jemand mal erklären wie ich einer Funktion, die ich über einen Button aufrufen möchte Parameter übergeben kann?
Folgendes Beispiel:
Code: Alles auswählen
from Tkinter import *
def say_hi():
name = entry.get()
print "Hi, ", name
root = Tk()
frame = Frame(root)
frame.pack()
entry = Entry(frame)
entry.pack()
button = Button(frame, text="QUIT", fg="red", command=frame.quit)
button.pack(side=LEFT)
hi_there = Button(frame, text="Hello", command=say_hi)
hi_there.pack(side=LEFT)
root.mainloop()
Code: Alles auswählen
def say_hi(name):
print "Hi, ", name
Code: Alles auswählen
hi_there = Button(frame, text="Hello", command=say_hi("Hugo"))
Das obige Beispiel funktioniert ja nur deshalb weil der Name entry (das Eingabefeld) global ist.
Folgendes z.b. würde ja nichtmehr funktionieren:
Code: Alles auswählen
from Tkinter import *
def say_hi():
name = entry.get()
print "Hi, ", name
def body(master):
frame = Frame(master)
frame.pack()
entry = Entry(frame)
entry.pack()
button = Button(frame, text="QUIT", fg="red", command=frame.quit)
button.pack(side=LEFT)
hi_there = Button(frame, text="Hello", command=say_hi)
hi_there.pack(side=LEFT)
root = Tk()
body(root)
root.mainloop()