Очистить текстовое поле в tkinter

John спросил: 31 июля 2018 в 09:37 в: python-3.x

Я пытаюсь обновить ярлык в графическом интерфейсе tkinter и проверить его очень сложно. Я попробовал команду destroy () и команду delete, например

def Erase():
    self.e1.delete(first=0,last=100)

Я прочитал много сообщений и tkinter, но не успели

def retrieve_inputBoxes():
    VPNID = int(self.e1.get())
    df = pd.read_csv("Data.csv")
    output = (df[["field1", "field2", "field9"]][df["field4"]== VPNID])
    my_list1 = output["field1"].tolist()
    self.e1 = self.canvas.create_text(100 ,450 ,anchor='center', text=my_list1, font =('Helvetica', 8, 'bold'))

Данные попадают на метку только отлично, но при следующем входе данные перезаписывают предыдущую запись. Любая помощь будет оценена

2 ответа

John ответил: 31 июля 2018 в 11:04
Да, спасибо, что сработало!
Есть решение
strava ответил: 31 июля 2018 в 03:01

Метод delete необходимо вызывать для объекта canvas, а не для переменной self.e1. Метод create_text возвращает идентификатор, поэтому эта строка:

self.e1 = self.canvas.create_text(... )

присваивает этот идентификатор self.e1. Вы можете использовать эту переменную, чтобы сообщить метод удаления, что удалить.

self.canvas.delete(self.e1)