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

Fragen zu Tkinter.
nicolasroth01
User
Beiträge: 5
Registriert: Samstag 20. Januar 2018, 23:51

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

Beitragvon nicolasroth01 » Mittwoch 24. Januar 2018, 16:05

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.
  1. from Tkinter import *
  2.  
  3. root = Tk()
  4.  
  5. def wechsleFarbe():
  6.     b1["bg"] = "#FFFF00"
  7.     return
  8.  
  9. b1 = Button(root, text = "Knopf", command = wechsleFarbe())
  10.  
  11. b1.pack()
  12.  
  13. root.mainloop()
Benutzeravatar
__deets__
User
Beiträge: 2155
Registriert: Mittwoch 14. Oktober 2015, 14:29

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

Beitragvon __deets__ » Mittwoch 24. Januar 2018, 16:07

Du rufst die Funktion ja auch gleich auf, statt sie nur zu uebergeben als Argument an command. Nimm mal die Klammern weg bei "command=.."
nicolasroth01
User
Beiträge: 5
Registriert: Samstag 20. Januar 2018, 23:51

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

Beitragvon nicolasroth01 » Mittwoch 24. Januar 2018, 16:09

__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?
Benutzeravatar
__deets__
User
Beiträge: 2155
Registriert: Mittwoch 14. Oktober 2015, 14:29

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

Beitragvon __deets__ » Mittwoch 24. Januar 2018, 16:11

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...
nicolasroth01
User
Beiträge: 5
Registriert: Samstag 20. Januar 2018, 23:51

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

Beitragvon nicolasroth01 » Mittwoch 24. Januar 2018, 16:12

__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!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder