Не может grid_forget () фрейм при обновлении окна - PullRequest
0 голосов
/ 01 декабря 2011

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

##here: two nested for loops

f = Frame(master,height=600,width=200, bd=1, relief=SUNKEN)
f.grid(row=rowN, column=colN, pady=15, padx= 0)

Label(f, text="Mesa: " + str(lOfKeys[count])).pack(side = TOP)

scrollbar = Scrollbar(f, orient=VERTICAL)
listbox = Listbox(f, yscrollcommand=scrollbar.set, width=19, bg="white")

listboxFrames[listbox] = f

tableRel[listbox] = lOfKeys[count]

scrollbar.config(command=listbox.yview)
scrollbar.pack(side=RIGHT, fill=Y)
listbox.pack(side=TOP)
listbox.bind("<Double-Button-1>", hideOrder)
listbox.bind("<Return>", hideOrder)

index = 0
listbox.delete(0, END)

##for loop to fill the listbox

if len(listbox.get(0, END)) == 0:
    print "forget" + str(lOfKeys[count])
    f.grid_forget()

count += 1

Приведенное выше решение работает нормально, когда я заново запускаю программу, но если код вызывается master.after, это не приводит к исчезновению фрейма, напротив, оно фактически дублирует его иногда ведет себя другими странными манерами.

Мне интересно, каков наилучший подход к этому, учитывая, что списки постоянно заполняются и очищаются.

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