Ich lerne Python noch so der Rest meines Codes kann fehlerhaft sein, aber mein Hauptproblem ist, kann ich diese Schaltfläche nicht deaktivieren, wenn die Variable Holz und Stein bei 0 sind versuchte mit einer while-Anweisung, die button.config (state = deaktiviert) Befehl ausgeführt, wenn Stein> 0 und Holz> 0, aber das schien nicht zu funktionieren.Deaktivieren Sie eine Tkinter-Schaltfläche, wenn die Variablen 0 sind
from tkinter import *
from tkinter import tkk
class main:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.CraftPickaxe = Button(frame, text = 'Pickaxe', command = self.craftPick)
self.CraftPickaxe.pack()
###RESOURCES###
self.wood = 1
self.stone = 1
self.pickaxe = 0
def craftPick(self):
self.stone -= 1
self.wood -= 1
self.pickaxe += 1
print(self.stone)
print(self.wood)
print(self.pickaxe)
def loop(self):
while True:
if self.stone < 0 and self.wood < 0:
self.CraftPickaxe.config(state=DISABLED)
elif self.stone > 0 and self.wood > 0:
self.CraftPickaxe.config(state=NORMAL)
root = Tk()
b = main(root)
root.mainloop()
EDIT: was ich denke, jetzt passiert ist, ist, dass es nicht ständig um die Variablen zu überprüfen, ob es unter Null geht und daher nicht zu deaktivieren. Was ich denke, möglicherweise muss passieren, ist ein Scheck, der in der CraftPick Funktion läuft.
Ja, das scheint könnte eines der Probleme gewesen sein. obwohl, was ich denke, passiert jetzt ist, dass es nicht ständig überprüft die Variablen zu sehen, ob es unter Null geht und daher überhaupt nicht deaktivieren – Joi
Wenn es Ihre Frage gelöst, denken Sie daran, upvote und wählen Sie als richtige Antwort :) Wenn nicht versuchen, aktualisieren die Details, damit ich dir weiterhelfen kann – Juanvulcano
Ja danke dafür, Scheint sehr einfach, wenn ich jetzt darüber nachdenke. Als richtige Antwort ausgewählt :) – Joi