Seite 1 von 1

Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 18:12
von Kiwi_gamer01
Morgen,

Ich habe 6 Slider in meinem GUI jeder soll die selbe funktion ausführen und anstatt 7 mal die selbe Funktion zu schreiben, möchte ich eine Art id den Slider(Scale) zuweißen, bzw. eine Variable von 0-5(6 Servos) mit senden. Ebenfalls brach ich auch den Wert des Silders. Also fällt lambda raus da hierbei Variable und Wert gebraucht werden. Welche Möglichkeiten habich noch außer sieben mal die selbe Funktion schreiben (copy&paste) müsste.

Bei Unklarheiten fragen! Danke!

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 18:18
von __deets__
Das geht auch mit einem lambda. Denn damit kannst du ja EINE Funktion 6 mal mit einer unterschiedlichen ID aufrufen.

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 18:26
von Kiwi_gamer01
OK, könntest du mirr nen Link zu nem Bsp schicken bzw ein Bsp schreiben?

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 18:57
von __deets__
lambda: funktion(argument)

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 19:05
von Sirius3
Statt lambda sollte man in dem Fall aber functools.partial benutzen.

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 21:29
von Kiwi_gamer01
__deets__ hat geschrieben: Mittwoch 6. Januar 2021, 18:57 lambda: funktion(argument)
Wie gesagt bei einem Wert der wie bei einem Slider übertragen wird funktioniert lambda nicht:

Code: Alles auswählen

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
TypeError: <lambda>() takes 0 positional arguments but 1 was given

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 21:37
von Sirius3
Zeig Deinen ganzen Code und nicht nur die Fehlermeldung. Damit kann niemand was anfangen.
Aber dem Lambda fehlt ein Argument.

Re: Scale command mit weiterem Argument

Verfasst: Mittwoch 6. Januar 2021, 21:39
von Kiwi_gamer01
Sirius3 hat geschrieben: Mittwoch 6. Januar 2021, 19:05 Statt lambda sollte man in dem Fall aber functools.partial benutzen.
OK, werde es mir anschauen. Danke!