Tkinter初学者,以及一般的python noob。
我有一个程序将项目附加到列表并在列表框中显示该列表。它会在重新加载时正确显示所有项目,但我希望新值在列表框中可见而无需重新加载。这是我的尝试。它不会返回任何错误,但它也不起作用。
我在Mac OSX上运行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)
答案 0 :(得分:1)
我使用的一种方法是删除列表框中的所有内容并将新列表放入。例如
listbox.delete(0, END)
for i in range(len(new_list)):
listbox.insert(END,new_list[i][0])
这将删除当前框中的所有内容,并将新列表放入。
希望这有帮助,如果您有任何问题请发表评论。