删除for循环python tkinter中创建的按钮

时间:2017-10-26 18:09:44

标签: python function loops tkinter

我希望当我转到第二页并返回主页时,它会移除mainloop中创建的按钮。所以当我再次打开第二页时,需要再次制作按钮。使用更新列表

现在它显示按钮2次。我知道不将它添加到一个函数中它只会渲染一次,但关键是当它在一个函数中时它将被删除,并且每次打开主页时它都需要重新编写。因此,当应用程序打开时,我可以编辑例如列表,并且它将再次呈现。

这是我的代码:

from tkinter import *

items = ['ijs', 'water', 'lolly', 'laptop']

root = Tk()

def buttonmaker():
    for x in items:
        button = Button(master=secondpage, text=x ).pack()

def mainpagetosecondpage():
    mainpage.pack_forget()
    buttonmaker()
    secondpage.pack()

def secondpagetomainpage():
    secondpage.pack_forget()
    mainpage.pack()



#mainpage
mainpage = Frame(master=root)
main_to_second_button = Button(master=mainpage, text='secondpage', command=mainpagetosecondpage).pack()

#scondpage
secondpage = Frame(master=root)
Second_to_main_button = Button(master=secondpage, text='mainpage', command=secondpagetomainpage).pack()

mainpage.pack()
root.mainloop()

如果不清楚,请询问

1 个答案:

答案 0 :(得分:1)

在设置第二帧期间,您只需要调用一次buttonmaker:

from tkinter import *

root = Tk()

def buttonmaker():
    items = ['ijs', 'water', 'lolly', 'laptop']
    for x in items:
        button = Button(master=secondpage, text=x )
        button.pack()

def mainpagetosecondpage():
    mainpage.pack_forget()
    secondpage.pack()

def secondpagetomainpage():
    secondpage.pack_forget()
    mainpage.pack()

#mainpage
mainpage = Frame(master=root)
main_to_second_button = Button(master=mainpage, text='secondpage', command=mainpagetosecondpage)
main_to_second_button.pack()

#scondpage
secondpage = Frame(master=root)
Second_to_main_button = Button(master=secondpage, text='mainpage', command=secondpagetomainpage)
Second_to_main_button.pack()
buttonmaker()

mainpage.pack()
root.mainloop()

此外,您需要避免将布局放在与初始化相同的行上。像variable = Widget(args).pack()这样的代码会导致错误。像我上面那样使用2行。