我尝试使用python版本3.3在Tkinter中创建两个按钮,一个用于创建按钮,另一个用于删除所述按钮。到目前为止它一直在工作,除了如果我创建多个按钮,我只能删除一个创建的按钮。我的问题是:每次调用删除按钮时,我能做些什么才能删除按钮? 到目前为止,这是我的代码:
from tkinter import *
def createbutton():
global secondbut
secondbut=Button(root,text="button")
secondbut.pack()
def eliminatebutton():
secondbut.destroy()
if __name__=='__main__':
root=Tk()
global create
global delete
create= Button(root,text="create",command=createbutton)
delete=Button(root,text="delete",command=eliminatebutton)
create.pack()
delete.pack()
root.mainloop()
答案 0 :(得分:1)
问题是您将Button
存储在变量(secondbut
)中,然后在创建新按钮时覆盖该变量。
不是直接将其存储在变量中,而是将其存储在某个容器中,例如列表。
此代码将执行您想要的操作:
from tkinter import *
def createbutton():
global secondbut
secondbut.append(Button(root,text="button"))
secondbut[-1].pack()
def eliminatebutton():
secondbut[-1].destroy()
secondbut.pop()
if __name__=='__main__':
root=Tk()
global create
global delete
global secondbut
secondbut = []
create= Button(root,text="create",command=createbutton)
delete=Button(root,text="delete",command=eliminatebutton)
create.pack()
delete.pack()
root.mainloop()
请注意,它会删除添加它们的相反顺序中的按钮。