Python Очистка списка для использования в виджете Tkinter - PullRequest
0 голосов
/ 06 декабря 2018

эта функция выбирает данные из таблицы 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 голосов
/ 06 декабря 2018
list_= CreateSingleAttendanceReportFrame()

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

Уверен, что должно работать.Вы вложили функцию в другую функцию, и когда вы вернули ей список, она сделала список глобальной переменной.У вас нет аргументов в CreateSingleAttendanceReportFrame, поэтому, когда вы говорите, что список внутри этой функции пуст, все, что он делает, это говорит вашему компьютеру, что у вас есть пустой список внутри этой функции, а не что список THE должен быть пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...