How can I cleanly remove the associated window
so that they don't add up over time?
CodePudding user response:
You need to remove the items from the Text
widget using the index returned by .dump()
. But you need to remove them in reverse order, otherwise the index will be wrong after removing the first item.
def delete_labels():
for lbl in label_text_field.dump("1.0", "end")[::-1]: # get the items in reverse order
if lbl[0] =='window' and lbl[1]:
label_text_field.nametowidget(lbl[1]).destroy()
label_text_field.delete(lbl[2]) # remove item from text box as well
Actually you can pass window=1
to dump()
to return window items only:
def delete_labels():
for lbl in label_text_field.dump("1.0", "end", window=1)[::-1]:
if lbl[1]:
label_text_field.nametowidget(lbl[1]).destroy()
label_text_field.delete(lbl[2])