Python 是否在不退出和重新输入的情况下更新Tkinter列表框?

Python 是否在不退出和重新输入的情况下更新Tkinter列表框?,python,listbox,tkinter,Python,Listbox,Tkinter,这里是Tkinter初学者和一般python noob 我有一个程序,可以将项目附加到列表中,并在列表框中显示该列表。它将在重新加载时正确显示所有项目,但我希望新值在列表框中可见,而无需重新加载。这是我的尝试。它不会返回任何错误,但也不起作用 我在MacOSX上运行2.7。记住,我对这方面还不太熟悉 def OnPressEnter(self,event): hold = self.entryVariable.get() hold = str(hold) with ope

这里是Tkinter初学者和一般python noob

我有一个程序,可以将项目附加到列表中,并在列表框中显示该列表。它将在重新加载时正确显示所有项目,但我希望新值在列表框中可见,而无需重新加载。这是我的尝试。它不会返回任何错误,但也不起作用

我在MacOSX上运行2.7。记住,我对这方面还不太熟悉

def OnPressEnter(self,event):
    hold = self.entryVariable.get()
    hold = str(hold)
    with open('GoalTrak/StudentList.txt', 'a') as textfile: #This appends students to the already existing document of students
        if (hold) not in student_list_temp:
            student_list_temp.append(hold[:-1])
            textfile.write(hold + '\n')
            self.labelVariable.set( self.entryVariable.get() + " added" )
            self.StudentListDisplay.insert(Tkinter.END,hold[:-1])
        else:
            self.labelVariable.set( self.entryVariable.get() + " is already in list" )
        textfile.close()
    self.entry.focus_set()
    self.entry.selection_range(0, Tkinter.END)
提前谢谢

编辑:以下是我定义列表框的代码:

self.StudentListDisplay = Tkinter.Listbox(self)
    self.StudentListDisplay.grid(row=2,column=0,columnspan=2,sticky='W')
    for student in student_list_temp:
        self.StudentListDisplay.insert(Tkinter.END, student)

我使用的一种方法是删除列表框中的所有内容,然后放入新列表。比如说

listbox.delete(0, END)
for i in range(len(new_list)):
    listbox.insert(END,new_list[i][0])
这将删除框中当前的所有内容,并将新列表放入


希望这对您有所帮助,如果您有任何问题,请发表评论。

您可以向我们展示定义列表框的代码吗?@AlexThornton更新!“无需重新加载”是什么意思?@mgilson列表框显示更新的唯一方法是退出程序并重新启动它。你怎么知道它不起作用?您是否已验证正在调用向列表中添加变量的代码?当然,在任何时候都可以在列表框中插入项目,所以如果它不工作,可能永远不会调用该代码?我不确定,但我有一些想法。尝试从按住[:-1]中删除“:”。我想这是你的问题。这与我之前发布的内容无关。让我知道这是否有效,我将编辑我的答案,以反映正确的答案,并进行更多的解释。它仍然有效,但这不是指定一个不可能的开始位置吗?而且,它没有解决我原来的问题。
list[:-1]
返回整个列表,但不包含最后一个元素<代码>列表[-1]仅返回最后一个元素。你在那部分的所有等待中都这么做了吗?还有一件事。您可以删除
textfile.close()
行。当使用
with
语句时,这是不必要的。我可以看看self.entryVariable的定义吗?