Python是我的第一语言,所以请理解我,如果它没有意义。我在用Python做一个虚拟宠物。我在用Tkinter做GUI。我想在Action类中每5秒运行一次display方法。但是,如果我使用threading、sched或time并将代码放在按钮的正前方,它就会冻结并运行display方法。如何在不中断按钮和其他部分的情况下,每5秒运行一次display方法?你知道吗
class Pet:
def __init__(self, name, hunger=0, boredom=0, tiredness=0, sickness=False,
age=0, waste=0):
self.__name = name
self.hunger = hunger
self.boredom = boredom
self.tiredness = tiredness
self.sickness = sickness
self.age = age
self.waste = waste
self.choice = choice
class Action(Pet):
def __init__(self, name):
Pet.__init__(self, name, hunger=0, boredom=0, tiredness=0,
sickness=False, age=0, waste=0)
self.name = name
def display(self):
print("------------")
print("hunger", self.hunger)
print("boredom", self.boredom)
print("tiredness", self.tiredness)
print("sickness", self.sickness)
print("age", self.age)
class Window(Frame):
def openmenu(self):
petname = self.petnameEntry.get()
user_pet = Action(petname)
print("I am your pet,", petname)
window = tk.Toplevel(root)
w = Label(window, text="What would you like to do?")
w.pack()
btFeed = Button(window, text="Feed", command=lambda: user_pet.eat())
btFeed.pack(pady=3)
btPlay = Button(window, text="Play", command=lambda:
user_pet.play())
btPlay.pack(pady=3)
建议在
class Window(Frame)
中定义一个新函数:然后修改
openmenu(...)
,如下所示:您可以使用
After
方法。你知道吗相关问题 更多 >
编程相关推荐