Hallo zusammen,
ich bin ein absoluter Python Anfänger und möchte es per Rasperry Pi erlernen.
Folgendes Problem: Ich möchte über einen GPIO (23) eine LED ansteuern mittels GUI (tkinter) und dann über einen Button. Momentan habe ich es soweit geschafft die Ansteuerung mit zwei Buttons zu realisieren (Button 1 für Ein mit dem entsprechendem Command und das selbe mit dem Button 2 für Aus).
Frage: Wie muss die Syntax aussehen für meinen Button, dass ich den Value abfragen kann, sprich es dann ganz simpel mit einem if steuern?
Code Ausschnitt mit zwei Buttons:
def Funktion_1():
GPIO.output(23,GPIO.HIGH)
def Funktion_2():
GPIO.output(23,GPIO.HIGH)
b1 = Button(root , text = AN , command = Funktion_1)
b2 = Button(root , text = AUS , command = Funktion_2)
b1.pack()
b2.pack()
root.mainloop()
Code Ausschnitt mit einem Button (nach meiner Idee nach und natürlich falsch):
b1 = Button(root , text = AN , command = Funktion_1)
if b1 == 1:
GPIO.output(23,GPIO.HIGH)
if b1 == 0:
GPIO.output(23,GPIO.LOW)
b1.pack()
root.mainloop()
#Fehler: b1 nicht definiert...
Danke im Voraus
M.
GUI LED ansteuern
- __blackjack__
- User
- Beiträge: 13006
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@M3chaton1ker: `b1` ist da doch definiert, den Fehler dürftest Du also nicht bekommen. Es macht allerdings so gar keinen Sinn ein `Button`-Objekt mit den Zahlen 0 oder 1 zu vergleichen. Das ist natürlich *immer* ungleich. Vielleicht möchtest Du ja einen `Checkbutton` verwenden‽ Den kann man auch als normale Schaltfläche darstellen und der hat zwei Zustände denen man Werte zuordnen kann, also Beispielsweis `GPIO.HIGH` und `GPIO.LOW`.
Namen schreibt man in Python übrigens klein_mit_unterstrichen. Ausnahmen: Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Zudem sollte man sinnvolle und aussagekräftige Namen verwenden. Also nichts mit nur einem Buchstaben und keine Nummerierung.
Bei GUI-Programmen kommt man nicht wirklich um objektorientierte Programmierung herum.
Namen schreibt man in Python übrigens klein_mit_unterstrichen. Ausnahmen: Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Zudem sollte man sinnvolle und aussagekräftige Namen verwenden. Also nichts mit nur einem Buchstaben und keine Nummerierung.
Bei GUI-Programmen kommt man nicht wirklich um objektorientierte Programmierung herum.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis