Jump to content

Grundlegendes Verständnisproblem zum Thema Callbacks


Wunderkerze

Recommended Posts

Hallo,

 

ich programmiere in Python und habe noch ein grundlegendes Problem bei der Nutzung von Callbacks. Wenn ich zum Beispiel bei einem LCD 128x64 den Callback für den GUI-Slider nutzen möchte, dann kann ich zwar wie im Beispiel gezeigt den aktullen Slider-Wert in der Callback-Funktion selber verwenden, aber ich kann den Wert nicht ans Hauptprogramm zurück geben, da ich keine Rückgabewerte für die Callback-Funktion definieren kann. Theoretisch müssten ich die Variable in der Callback-Funktion als global definieren und dann überschreiben. Das ist aber nicht wirklich im Sinne des Erfinders, oder?

 

Ansonsten muss ich den Wert des Sliders mit der Funktion "lcd.get_gui_slider_value(0)" abfragen, wenn ich diesen in __main__ verwenden möchte.

 

Was also genau ist dann der Sinn der Callbacks? Vielleicht stehe ich gerade komplett auf dem Schlauch, da ich erst seit kurzem in Python programmiere. Kann mir da jemand einen Tipp geben? Vielleicht hat ja sogar jemand ein Beispiel parat?

 

Gruß Wunderkerze

Link to comment
Share on other sites

Das hängt ganz davon ab wie du deinen GUI-Slider nutzen möchtest.

 

Je nach Anwendung ist es möglich auf die Änderung des Sliders direkt im Callback zu reagieren.

 

Falls es in deinem Programm eine Main-Loop o.ä. gibt die alles behandeln soll, kannst du z.B. die Werte des Sliders in eine Queue (oder ein Future) packen und in der Main-Loop regelmäßig schauen ob etwas in der Queue ist.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...