Подтвердить что ты не робот

Как очистить/удалить содержимое текстового виджета Tkinter?

Я пишу программу Python в TKinter на Ubuntu для импорта и печати имя файлов из определенной папки в виджете Text. Он просто добавляет имена файлов в предыдущие имена файлов в Text виджет, но сначала хочу его очистить, а затем добавить свежий список имен файлов. Но я стараюсь очистить виджет Text предыдущего списка имена файлов.

Может кто-нибудь объяснить, как очистить виджет Text?

Ниже перечислены экраны и кодировки:

скриншот с изображением текстового виджета с содержимым

import os
from Tkinter import *

def viewFile():
    path = os.path.expanduser("~/python")
    for f in os.listdir(path):
        tex.insert(END, f + "\n")

if __name__ == '__main__':
    root = Tk()

    step= root.attributes('-fullscreen', True)
    step = LabelFrame(root, text="FILE MANAGER", font="Arial 20 bold italic")
    step.grid(row=0, columnspan=7, sticky='W', padx=100, pady=5, ipadx=130, ipady=25)

    Button(step, text="File View", font="Arial 8 bold italic", activebackground=
           "turquoise", width=30, height=5, command=viewFile).grid(row=1, column=2)
    Button(step, text="Quit", font="Arial 8 bold italic", activebackground=
           "turquoise", width=20, height=5, command=root.quit).grid(row=1, column=5)

    tex = Text(master=root)
    scr=Scrollbar(root, orient=VERTICAL, command=tex.yview)
    scr.grid(row=2, column=2, rowspan=15, columnspan=1, sticky=NS)
    tex.grid(row=2, column=1, sticky=W)
    tex.config(yscrollcommand=scr.set, font=('Arial', 8, 'bold', 'italic'))

    root.mainloop()
4b9b3361

Ответ 1

Я проверил на моей стороне, просто добавив "1.0" и начал работать

tex.delete('1.0', END)

вы также можете попробовать это

Ответ 2

В соответствии с tkinterbook код для очистки текстового элемента должен быть:

text.delete(1.0,END)

Это сработало для меня. источник

Он отличается от очистки элемента ввода, который выполняется следующим образом:

entry.delete(0, END) # примечание 0 вместо 1.0

Ответ 3

from Tkinter import *

app = Tk()

# Text Widget + Font Size
txt = Text(app, font=('Verdana',8))
txt.pack()

# Delete Button
btn = Button(app, text='Delete', command=lambda: txt.delete(1.0,END))
btn.pack()

app.mainloop()

Здесь приведен пример txt.delete(1.0,END).

Использование lambda позволяет нам удалять содержимое без определения фактической функции.

Надеюсь, что поможет