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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python清除在Tkinter小部件中使用的列表相关的知识,希望对你有一定的参考价值。

此函数从MySQL表中选择数据并将其作为List返回。然后使用此List定义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(),但这也没用。

答案
list_= CreateSingleAttendanceReportFrame()

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

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

以上是关于Python清除在Tkinter小部件中使用的列表的主要内容,如果未能解决你的问题,请参考以下文章

在 Tkinter 中按下按钮后如何清除 Entry 小部件?

使用 matplotlib 清除 Tkinter Canvas 小部件的问题

如何在python 3.4.x中的tkinter文本小部件中显示渲染的html内容

Python Tkinter Checkbutton 与其他小部件对齐

如何更改标签小部件中的文本大小,python tkinter [重复]

在Python Tkinter中获取父窗口小部件的父级