Python清除要在Tkinter小部件中使用的列表

时间:2018-12-06 10:36:47

标签: python mysql list tkinter

此函数从MySQL表中选择数据并将其作为列表返回。然后,此列表用于定义tkinter OptionMenu。问题是,当我多次调用此函数时,tkinter小部件中的选项列表会加倍。

def CreateSingleScoutAttendanceReportRaiseFrame():
    ScoutList=[]
    mycursor.execute("SELECT firstname,secondname FROM scoutinfo")
    myresults=mycursor.fetchall()
    print(myresults)
    for i in myresults:
        Temp=[i[0]]+[i[1]]
        print(Temp)
        ScoutList.append(Temp)

    AttendanceScoutOptionMenuLabel = tk.Label(CreateSingleAttendanceReportFrame,text="Choose A Scout: ",font=LargeTextFont,bg="white")
    AttendanceScoutOptionMenuLabel.grid(row=2,column=1)

由于您无权访问我的数据库,因此我可以向您显示照片。

First Call Second Call

据我了解,每次使用行ScoutList=[]运行该函数时,我都会清除该列表,因为它应该清除该列表。 我已经尝试过ScoutList.clear(),但是那也不起作用。

1 个答案:

答案 0 :(得分:1)

list_= CreateSingleAttendanceReportFrame()

AttendanceScoutOptionMenuLabel = tk.Label(list_,text="Choose A Scout: ",font=LargeTextFont,bg="white")

非常确定应该可以。您将函数嵌套在另一个函数中,当您将列表返回给它时,它使列表成为全局变量。 CreateSingleAttendanceReportFrame中没有任何参数,因此当您说该函数内的列表为空时,它所做的只是告诉您计算机该函数内有一个空列表,而不是该列表应为空