如何将字典中的选定值显示到列表框

时间:2016-11-03 11:34:12

标签: python user-interface tkinter

我正在忙着制作一个带有搜索功能的程序,其中一个人将进入例如主题"信息系统"在GUI Tk条目中,我希望它显示在那些具有信息系统的记录上。这是一些代码:

StudentList[[Tom,Information systems],[John,Computers]]

所以基本上如果我输入信息系统,它必须显示在我的列表框中: "汤姆,信息系统"

如何使此搜索功能正常工作? 这就是我试过的

for i in students:
    if viewcode == True:
        lb1.insert(END,str(i))

1 个答案:

答案 0 :(得分:0)

这大致与您所寻求的一致。在“输入”框中输入搜索词,然后按“返回”。然后,它将使用学生列表中的任何匹配条目填充列表框。

from tkinter import *

student_list = [['Tom','Information Systems'],['John','Computers']]


class App(Frame):
    def __init__(self,parent=None,**kw):
        Frame.__init__(self,master=parent,**kw)
        self.searchValue = StringVar()

        self.searchBox = Entry(self,textvariable=self.searchValue)
        self.searchBox.pack()
        self.resultList = Listbox(self)
        self.resultList.pack()

        self.searchBox.bind('<Return>',self.update)

    def update(self,e):
        print("*")
        self.resultList.delete(0,END)
        searchkey = self.searchValue.get()
        for student in student_list:
            if searchkey == student[0]:
                self.resultList.insert(END,str(student))
            elif searchkey == student[1]:
                self.resultList.insert(END,str(student))

if __name__ == '__main__':
    root = Tk()
    app = App(root)
    app.pack()
    root.mainloop()