Seite 1 von 1
lambda mehrere funktionen auf einmal ausführen
Verfasst: Sonntag 16. November 2014, 19:30
von HardwareManager
meine frage ist:
Wie kann ich mit tkinter zwei befehele mit einem button machen?
Ich habe etwas gelesen von lambda aber da kann ich bis jetzt nur einen Befehl ausführen.
Wie kann man mit lambda zwei befehle ausführen?
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Sonntag 16. November 2014, 19:34
von BlackJack
@HardwareManager: Definiere einfach eine normale, benannte Funktion oder Methode.
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Sonntag 16. November 2014, 19:43
von HardwareManager
Aber in dieser Methode kann ich dann nicht so etwas wie
machen, oder was meinst du?
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Sonntag 16. November 2014, 19:52
von BlackJack
@HardwareManager: Wenn `root` irgendwie als Argument in die Funktion oder Methode kommt dann schon.
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Montag 17. November 2014, 17:28
von HardwareManager
Bei einem Button muss man ja dann lambda verwenden:
Code: Alles auswählen
button = Button(root, text='Ok', width=25, command=lambda: print("hallo"))
und kann man lambda nicht irgendwie dazu bringen zwei Befehle auszuführen?
also das "hallo" geprintet wird und das root kaputt gemacht wird?
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Montag 17. November 2014, 17:50
von BlackJack
@HardwareManager: Nein da *muss* man *nicht* einen ``lambda``-Ausdruck verwenden. Da kann man jedes beliebige aufrufbare Objekt übergeben. Eben auch benannte Funktionen oder Methoden.
Code: Alles auswählen
from functools import partial
# ...
def print_and_destroy(widget):
print('Hallo')
widget.destroy()
# ...
button = Button(root, text='Ok', width=25, command=partial(print_and_destroy, root))
Re: lambda mehrere funktionen auf einmal ausführen
Verfasst: Montag 17. November 2014, 19:04
von HardwareManager
DANKE!! ES GEHT <3 <3 <3