Seite 1 von 1

Button führt Funktion aus bevor er gedrückt wurde

Verfasst: Mittwoch 24. Januar 2018, 16:05
von nicolasroth01
Hi, ich möchte, dass der Button die Funktion erst ausführt, sobald er gedrückt wird. Das Problem scheinen mir die Klammern hinter dem Funktionsaufruf zu sein, da, wenn ich diese entferne, die Funktion nicht sofort aufgerufen wird, sondern erst beim Klicken. Mit den Klammern klappt das nicht und die Funktion wird mit dem Ausführen des Programms aufgerufen.

Code: Alles auswählen

from Tkinter import *

root = Tk()

def wechsleFarbe():
    b1["bg"] = "#FFFF00"
    return

b1 = Button(root, text = "Knopf", command = wechsleFarbe())

b1.pack()

root.mainloop()

Re: Button führt Funktion aus bevor er gedrückt wurde

Verfasst: Mittwoch 24. Januar 2018, 16:07
von __deets__
Du rufst die Funktion ja auch gleich auf, statt sie nur zu uebergeben als Argument an command. Nimm mal die Klammern weg bei "command=.."

Re: Button führt Funktion aus bevor er gedrückt wurde

Verfasst: Mittwoch 24. Januar 2018, 16:09
von nicolasroth01
__deets__ hat geschrieben:Du rufst die Funktion ja auch gleich auf, statt sie nur zu uebergeben als Argument an command. Nimm mal die Klammern weg bei "command=.."
achso, danke... aber wie muss ich es dann machen, wenn ich eine Funktion aufrufen will, die einen Parameter braucht?

Re: Button führt Funktion aus bevor er gedrückt wurde

Verfasst: Mittwoch 24. Januar 2018, 16:11
von __deets__
Den musst du an die Funktion "anbinden", zB mit functools.partial.

Das, und diverse andere Dinge, wird hier im Forum uebrigens *permanent* besprochen. Ein bisschen durcharbeiten der tkinter Posts, und du lernst diese und andere Tricks, wie zB Dinge regelmaessig machen, warum blockierende Schleifen nicht funktionieren, etc...

Re: Button führt Funktion aus bevor er gedrückt wurde

Verfasst: Mittwoch 24. Januar 2018, 16:12
von nicolasroth01
__deets__ hat geschrieben:Den musst du an die Funktion "anbinden", zB mit functools.partial.

Das, und diverse andere Dinge, wird hier im Forum uebrigens *permanent* besprochen. Ein bisschen durcharbeiten der tkinter Posts, und du lernst diese und andere Tricks, wie zB Dinge regelmaessig machen, warum blockierende Schleifen nicht funktionieren, etc...
alles klar, danke dir!