Tkinter从正在运行的程序中删除按钮

Sha*_*hay 0 python user-interface tkinter widget destroy

我试图创建一个功能,创建并在屏幕上放置一个按钮(带网格),按钮的命令将自行删除(或任何其他小部件),但我没有这样做.

def a(self):
    self.call_button = Tkinter.Button(self.root, text = "Call", command=self.b).grid(row = 5, column = 5)

def b(self):
    self.call_button.destroy()
Run Code Online (Sandbox Code Playgroud)

a创建按钮,b删除它,但是当我在b上调用时,它说"NoneType对象没有属性破坏"

我该如何正确地做到这一点?

joe*_*nte 5

self.call_button设置为结果grid(row=5, column=5)而不是按钮..

from tkinter import *
class App(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.a()

    def a(self):
        self.call_button = Button(self, text = "Call", command=self.b)
        self.call_button.grid(row=5, column=5) # This is fixing your issue

    def b(self):
        self.call_button.destroy()

root = Tk()
app = App(master=root)
app.mainloop()
Run Code Online (Sandbox Code Playgroud)