удаление виджетов из сетки в tkinter

У меня есть сетка в кадре tkinter, которая отображает результаты запроса. Он имеет поле даты, которое изменяется вручную, а затем дата используется в качестве параметра в запросе для этих результатов. каждый раз, когда дата изменяется, очевидно, что результаты меняются, давая различное количество строк. Проблема в том, что если вы получите меньше строк во второй раз, вы все равно будете иметь результаты первого запроса под ними и будете очень запутанными.

мой вопрос в том, как я могу удалить все строки из кадра, которые имеют номер строки больше 6 (независимо от того, что в нем)?

кстати, я запускаю Python 3.3.3. Заранее спасибо!

1 ответов


вызов метода grid_forget на виджете будет удалить его из окна - в этом примере используется вызов grid_slaves на родителя, чтобы найти все виджеты, сопоставленные с сеткой, а затем grid_info звоните, чтобы узнать о позиция каждого виджета:

>>> import tkinter
# create: 
>>> a = tkinter.Tk()
>>> for i in range(10):
...    label = tkinter.Label(a, text=str(i))
...    label.grid(column=0, row=i)
# remove from screen:
>>> for label in a.grid_slaves():
...    if int(label.grid_info()["row"]) > 6:
...       label.grid_forget()