So in meinem tkinter Python-Programm rufe ich einen Befehl auf, wenn eine Schaltfläche geklickt wird. Wenn das passiert, führt es eine Funktion aus, aber in der Funktion habe ich beim ersten Klick auf die Schaltfläche eine Bezeichnung für etwas gesetzt und danach sollte nur die genannte Bezeichnung aktualisiert werden. Im Grunde ändert sich nach dem Versuch der Versuch, 1 sicherzustellen, dass die if-Anweisung das sieht und nicht passieren lässt. Es wird jedoch immer zurückgesetzt und ich weiß nicht, wie ich es stoppen kann. Wenn Sie auf die Schaltfläche klicken, egal ob zuerst oder dritt, wird die Schaltfläche zurückgesetzt und der Beweis dafür erfolgt, weil die h gedruckt wird. Es ist, als ob die Funktion neu startet, aber das sollte nicht, da es eine Schleife für die GUI ist.Befehl Funktion für Schaltfläche "setzt"
def fight(): #Sees which one is stronger if user is stronger he gets win if no he gets loss also displays enemy stats and removes used characters after round is finished
try:
attempt=0
namel = ""
namer=""
left = lbox.curselection()[0]
right = rbox.curselection()[0]
totalleft = 0
totalright = 0
if left == 0:
namel = "Rash"
totalleft = Rash.total
elif left==1:
namel = "Untss"
totalleft = Untss.total
elif left==2:
namel = "Illora"
totalleft = 60+35+80
if right == 0:
namer = "Zys"
totalright = Zys.total
elif right==1:
namer = "Eentha"
totalright = Eentha.total
elif right==2:
namer = "Dant"
totalright = Dant.total
lbox.delete(lbox.curselection()[0])
rbox.delete(rbox.curselection()[0])
print(namel)
print(namer)
if attempt == 0:
wins.set("Wins")
loss.set("Loss")
print("h")
attempt=1
if (totalleft>totalright):
wins.set(wins.get()+"\n"+namel)
loss.set(loss.get()+"\n"+namer)
else:
wins.set(wins.get()+"\n"+namer)
loss.set(loss.get()+"\n"+namel)
except IndexError:
pass
Auch für diejenigen, die meine vorherige Frage sah ich brauche noch Hilfe mit, dass ich auch gerade auch diesen Fehler beheben möchten.