【问题标题】:Appending to list overwrites it附加到列表会覆盖它
【发布时间】:2016-03-12 22:41:12
【问题描述】:

我正在制作一个包含会话时间的列表框,但是当我尝试将列表框项目附加到列表时,它已经覆盖了其中的所有条目。为什么会这样?

from Tkinter import *
class Main(object):
        def __init__(self, root):
            self.f2=Frame(root)
            self.f2.grid()
            Label(self.f2, text="Sesion Date:").grid(row=3, column=0)
            self.e=Entry(self.f2)
            self.e.grid(row=3, column=1)
            Button(self.f2, text="Add Session", command=self.session).grid(row=4, columnspan=2)
            self.sessionbox=Listbox(self.f2)
            self.sessionbox.grid(row=5, columnspan=2)
        def session(self):
            if len(self.e.get()) == 0: 
                tkMessageBox.showinfo("Add Session", "Please type a session date\nbefore submitting")
            else:
                self.sessionlist=[]
                self.sessionlist.append("%s" % (self.e.get()))
                print self.sessionlist
                self.sessionbox.insert(0, "%s" % (self.e.get()))
                self.e.delete(0, END)

root=Tk()
app=Main(root)
root.mainloop()

【问题讨论】:

    标签: python list tkinter append overwrite


    【解决方案1】:

    每次您重新初始化列表 (self.sessionlist=[]) ...我认为您必须全局访问它。在外面初始化。

    【讨论】:

    • 谢谢!我以前应该看到过……太愚蠢了:(也很好也很快:)
    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2015-04-29
    • 2012-08-22
    • 2020-06-09
    • 2011-10-14
    相关资源
    最近更新 更多