Tkinter: предыдущие виджеты не удаляются - PullRequest
0 голосов
/ 03 августа 2020

У меня был немного другой код, но я изменил его после ответа здесь:

Tkinter: виджет Addressing Label, созданный для l oop

#some starting code here
NOC_var = StringVar(frm_NOC)
NOC_var.set(NOC_list[0])

NOC_opt = OptionMenu(frm_NOC, NOC_var, *NOC_list)
NOC_opt.config(width=20, bg = 'white')

lbl_NOC.grid(row = 0, column = 0)
NOC_opt.grid(row = 0, column = 1)
frm_NOC.grid(row = 0, column = 0, sticky = 'w')

# Course Data
lbl_course = []
ent_course = []
lbl_ob_marks = []
ent_ob_marks = []
lbl_t_marks = []
ent_t_marks = []
def noc(*args): #noc = number of courses
    frm_crs_data = Frame(frm_crs, bg = 'white')
    frm_crs_data.grid(row = 1, column = 0, pady = 50)
    del lbl_course[:]
    del ent_course[:]
    del lbl_ob_marks[:]
    del ent_ob_marks[:]
    del lbl_t_marks[:]
    del ent_t_marks[:]
    n_o_c = int(NOC_var.get())
    for i in range(n_o_c):
        # Course Name
        lbl_course.append(Label(frm_crs_data, text = "Course name:", bg = 'white', font = (12)))
        ent_course.append(Entry(frm_crs_data, width = 25, bg = 'white'))

        # Obtained Marks
        lbl_ob_marks.append(Label(frm_crs_data, text = "Obtained marks:", bg = 'white', font = (12)))
        ent_ob_marks.append(Entry(frm_crs_data, width = 5, bg = 'white'))

        # Total Marks
        lbl_t_marks.append(Label(frm_crs_data, text = "Total marks:", bg = 'white', font = (12)))
        ent_t_marks.append(Entry(frm_crs_data, width = 5, bg = 'white'))

        lbl_course[i].grid(row = i, column = 0, padx = 1)
        ent_course[i].grid(row = i, column = 1, padx = 10)

        lbl_ob_marks[i].grid(row = i, column = 2, padx = 3)
        ent_ob_marks[i].grid(row = i, column = 3, padx = 5)

        lbl_t_marks[i].grid(row = i, column = 4, padx = 5)
        ent_t_marks[i].grid(row = i, column = 5)

NOC_var.trace("w", noc)

Проблема в том, что если я выберу 4 из раскрывающегося меню, он создаст комбинацию из 4 виджетов (это нормально), но теперь, если я выберу 2 из раскрывающегося меню, он не удаляет ранее созданные виджеты, но сохраняет все созданные ранее. . Прошло три дня, я застрял над той же проблемой. Я попытался выполнить поиск по всей сети, но не нашел решения.

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