私のtkinterのpythonプログラムでは、ボタンをクリックしたときにコマンドを呼びます。それが起こると、それは関数を実行しますが、関数では、最初にボタンをクリックしたときに何かにラベルを設定した後、そのラベルのみを更新する必要があります。基本的には、試行の後に、試行を1に変更し、ifステートメントがそれを見て、それが通過するのを許可しないようにします。しかし、それはリセットを維持し、私はそれを停止する方法を知らない。最初または3番目にボタンをクリックすると、ボタンがリセットされ、hが印刷されるために起こることが証明されます。それはあたかも関数が再起動したかのようですが、それはGUIのループなので、そうしてはいけません。ボタン "リセット"のコマンド機能
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
私の以前の質問を見た人にとっても、私はまだこのバグも修正したいと思っています。