【问题标题】:Python Clearing A List For Use in Tkinter WidgetPython 清除列表以在 Tkinter 小部件中使用
【发布时间】:2023-03-18 16:16:01
【问题描述】:

此函数从 MySQL 表中选择数据并将其作为列表返回。然后使用这个 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)

由于你无权访问我的数据库,我可以给你看照片。

据我了解,每次运行该函数时,我都会使用 ScoutList=[] 行清除列表,因为它应该清除列表。 我试过ScoutList.clear(),但也没有用。

【问题讨论】:

    标签: python mysql list tkinter


    【解决方案1】:
    list_= CreateSingleAttendanceReportFrame()
    
    AttendanceScoutOptionMenuLabel = tk.Label(list_,text="Choose A Scout: ",font=LargeTextFont,bg="white")
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 2012-11-29
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2015-03-14
      • 2011-01-16
      相关资源
      最近更新 更多