python清除tkinter小部件中使用的列表

ubof19bj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(387)

此函数用于从mysql表中选择数据并将其作为列表返回。然后使用此列表定义tkinter选项菜单。问题是,当我多次调用这个函数时,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)

因为你不能访问我的数据库,我可以给你看照片。


根据我的理解,每次函数与行一起运行时,我都会清除列表 ScoutList=[] 因为它应该清除列表。我试过了 ScoutList.clear() 但这也不管用。

0wi1tuuw

0wi1tuuw1#

list_= CreateSingleAttendanceReportFrame()

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

我很确定这应该管用。您将函数嵌套在另一个函数中,当您将列表返回给它时,它使列表成为一个全局变量。你没有任何争论 CreateSingleAttendanceReportFrame 所以当你说这个函数里面的列表是空的时,它所做的只是告诉你的计算机,你在这个函数里面有一个空的列表,而不是这个列表应该是空的。

相关问题