在我的程序中,我希望用户在数据库中插入每个电影院的成人、老年人和儿童门票的销售量。由于我不希望代码太重复,所以我认为做一个for循环或者类似的代码是最好的选择。
以后我需要访问每个元素,因此我想将它们存储在一个列表中。然而,当我试图将用户的输入存储在一个列表中,然后打印它时,它要么是空白的,要么是填充了最近的输入。我该怎么解决这个问题?
def help():
vuxenlista = []
vuxen = StringVar()
pensionärlista = []
pensionär = StringVar()
barnlista = []
barn = StringVar()
Label(fönster4, text="Vuxenbiljett").pack()
sålda_vuxen = Entry(fönster4, textvariable=vuxen)
sålda_vuxen.pack()
Label(fönster4, text="Pensionärsbiljett").pack()
sålda_pensionär = Entry(fönster4, textvariable=pensionär)
sålda_pensionär.pack()
Label(fönster4, text="Barnbiljett").pack()
sålda_barn = Entry(fönster4, textvariable=barn)
sålda_barn.pack()
vuxenlista.append(sålda_vuxen.get())
pensionärlista.append(sålda_pensionär.get())
barnlista.append(sålda_barn.get())
Button(fönster4, text="fortsätt2", command=lambda: info()).pack()
'''if elements == BIOGRAFVAL[0]:
Label(fönster4, text="Vuxenbiljett").pack()
sålda_vuxen1 = Entry(fönster4, textvariable=vuxen)
sålda_vuxen1.pack()
Label(fönster4, text="Pensionärsbiljett").pack()
sålda_pensionär1 = Entry(fönster4, textvariable=pensionär)
sålda_pensionär1.pack()
Label(fönster4, text="Barnbiljett").pack()
sålda_barn1 = Entry(fönster4, textvariable=barn)
sålda_barn1.pack()
if elements == BIOGRAFVAL[1]:
Label(fönster4, text="Vuxenbiljett").pack()
sålda_vuxen2 = Entry(fönster4, textvariable=vuxen)
sålda_vuxen2.pack()
Label(fönster4, text="Pensionärsbiljett").pack()
sålda_pensionär2 = Entry(fönster4, textvariable=pensionär)
sålda_pensionär2.pack()
Label(fönster4, text="Barnbiljett").pack()
sålda_barn2 = Entry(fönster4, textvariable=barn)
sålda_barn2.pack()
if elements == BIOGRAFVAL[2]:
Label(fönster4, text="Vuxenbiljett").pack()
sålda_vuxen3 = Entry(fönster4, textvariable=vuxen)
sålda_vuxen3.pack()
Label(fönster4, text="Pensionärsbiljett").pack()
sålda_pensionär3 = Entry(fönster4, textvariable=pensionär)
sålda_pensionär3.pack()
Label(fönster4, text="Barnbiljett").pack()
sålda_barn3 = Entry(fönster4, textvariable=barn)
sålda_barn3.pack() '''发布于 2020-12-08 13:58:56
您应该理解直到mainloop()只运行一次的代码。因此,如果要在现有代码中添加额外的代码,则必须通过事件触发它。做这件事不难。因为您没有提供一个可以运行的示例。下面是一个接受用户输入并附加到列表中的示例。
from tkinter import *
root = Tk()
def run():
lst1.append(e1.get())
lst2.append(e2.get())
print(lst1,lst2)
lst1 = [] #this is very important
lst2 = []
e1 = Entry(root)
e1.pack(padx=30,pady=10)
e2 = Entry(root)
e2.pack(padx=10,pady=10)
Button(root,text='Append all the text',command=run).pack(pady=10)
root.mainloop()在本例中,用户输入直接附加到列表中。--在所有函数之外初始化空列表非常重要,否则每次运行该函数时,它都会用空列表重写当前列表。我认为这是你在代码中犯的错误。只需在help()之外声明列表,比如:
vuxenlista = []
pensionärlista = []
barnlista = []
def help():
#same bunch of codes....https://stackoverflow.com/questions/65198599
复制相似问题