我希望当我转到第二页并返回主页时,它会移除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()
如果不清楚,请询问
答案 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行。