我将tkinter用作带有函数的类,当我运行一个导致另一个功能的函数时,将bur用作bur,但又以再次运行第一个功能结束,但是原始功能不起作用。请帮助
def idle(self):
self.next.destroy()
self.info.destroy()
self.prompt.configure(text=city_line + ", What do you want to do?")
self.backpack = tk.Button(self, text="Backpack", command=self.backpack)
self.shop = tk.Button(self, text="Shop")
self.wander = tk.Button(self, text="Wander", command=self.wander)
self.travel = tk.Button(self, text="Travel", command=self.travel)
self.backpack.pack(side="right", padx=5, pady=5)
self.shop.pack(side="right", padx=5, pady=5)
self.wander.pack(side="right", padx=5, pady=5)
self.travel.pack(side="right", padx=5, pady=5)
def backpack(self):
self.backpack.destroy()
self.shop.destroy()
self.wander.destroy()
self.travel.destroy()
self.output.destroy()
self.info = tk.Message(self, width=150, text=backpacke + ". Gold: " + str(gold))
self.output = tk.Label(self, text="")
self.next = tk.Button(self, text="Next", command=self.idle)
self.info.pack(side="top", fill="x", pady=8)
self.output.pack(side="top", fill="x", expand=True)
self.next.pack(side="right", padx=5, pady=5)
答案 0 :(得分:2)
创建类时,您有一个名为backpack
的方法。在类内部,self.backpack
引用此方法。调用此方法时,它会self.backpack = tk.Button(...)
进行有效销毁,并将其替换为小部件。下次尝试调用self.backpack
时,您将调用窗口小部件而不是方法。
您需要为保存窗口小部件的方法或变量选择一个不同的名称。