удаление виджетов из сетки в 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()