Создание набора виджетов для входа в соответствии с решением пользователя и поиск среднего их всех с помощью Tkinter - PullRequest
0 голосов
/ 29 апреля 2019

Цель: Программы принимают данные от пользователя о том, сколько виджетов Entry необходимо.Если пользователь вводит «5», то должны быть созданы 5 виджетов ввода, а затем пользователь вводит 5 цифр, а затем программа должна отображать среднее значение этих чисел.

def create_entries(r):
    if r % 2 == 0:
        entry = Entry(frame)
        entry.grid(row=r,column=0,padx=2)
        return entry
    else:
        entry = Entry(frame)
        entry.grid(row=r-1,column=1,padx=2)
        return entry
List_of_entries = [create_entries(r) for r in range(user_input)]

На самом деле эта программа создает фиксированнуюколичество записей и сохраняет виджеты записи в виде списка.Вызвав List_of_entries[0].get(), я могу получить доступ к значению первого текстового поля и т. Д .. и т. Д. Эта программа упорядочивает текстовые поля в матрице. Это подфункция внутри основной функции всякий раз, когда Return являетсяпри нажатии запускается основная функция.

Моя проблема: эта программа создает «5 виджетов ввода», если пользователь вводит «5», а затем нажимает клавишу возврата и когда пользователь очищает текстовое поле и вводит текст«4» (то есть меньше 5) и нажимает кнопку возврата, тем не менее он показывает «5 вместо 4 виджетов входа».Пожалуйста, помогите мне с моей проблемой

Электронная почта: p.rhubanraj@gmail.com

для получения дополнительной информации.

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете начать с определения пустого списка и добавить его в список, вместо того, чтобы создавать списком.

List_of_entries = []

def create_entries(r):
    global List_of_entries
    for i in List_of_entries:
        i.destroy()
    List_of_entries = []
    for i in range(r):
        entry = tk.Entry(frame)
        entry.grid(row=i,column=0,padx=2)
        List_of_entries.append(entry)
...