Knopf als Flipflop
Verfasst: Montag 13. August 2018, 11:56
Ich würde gerne einen einfachen Knopf (tkinter.Button) als Flipflop nutzen, also das er den Wert einer Variablen zwischen zwei zuständen ändert wenn er gedrückt wird. Diese Variable ist in einer 2D-Matrix gespeichert. Ich habe 64 Knöpfe (0-63) und habe die Matrix danach angeordnet
Der Befehl sieht folgendermaßen aus:
und wird im Knopf so aufgerufen:
wenn ich jetzt aber den Interpreter starte wird der Befehl "change" allerdings sofort ausgeführt (in der Shell steht "changing" ) und der Integer Display[0][0] wird zu 1. Wenn ich den Button jetzt allerdings drücke passiert nichts (kein "changing" in der shell und wenn ich mir Display ausgeben lasse ist der Wert von Display[0][0] immer noch 1). Also, was mache ich falsch?
( clm0=[0, 0, 0, 0, 0, 0, 0, 0]
clm1=[0, 0, 0, 0, 0, 0, 0, 0]
clm2=[0, 0, 0, 0, 0, 0, 0, 0]
clm3=[0, 0, 0, 0, 0, 0, 0, 0]
clm4=[0, 0, 0, 0, 0, 0, 0, 0]
clm5=[0, 0, 0, 0, 0, 0, 0, 0]
clm6=[0, 0, 0, 0, 0, 0, 0, 0]
clm7=[0, 0, 0, 0, 0, 0, 0, 0]
Display=[clm0, clm1, clm2, clm3, clm4, clm5, clm6, clm7])
Der Befehl sieht folgendermaßen aus:
(ich bin leider zu unfähig hier ein Bild einzufügen oder die Schleifen vernünftig einzurücken )def Ausgeben():
print(Display)
def change(clm, row):
print("changing")
if Display[clm][row]==1:
Display[clm][row]=0
elif Display[clm][row]==0:
Display[clm][row]=1
else:
print("Fehler")
und wird im Knopf so aufgerufen:
bt0=tkinter.Button(main, bg="white", command=change(0, 0))
bt1=tkinter.Button(main, bg="white", command=change(0, 1))
wenn ich jetzt aber den Interpreter starte wird der Befehl "change" allerdings sofort ausgeführt (in der Shell steht "changing" ) und der Integer Display[0][0] wird zu 1. Wenn ich den Button jetzt allerdings drücke passiert nichts (kein "changing" in der shell und wenn ich mir Display ausgeben lasse ist der Wert von Display[0][0] immer noch 1). Also, was mache ich falsch?