Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak wyczyścić/usunąć zawartość widżetu tekstowego Tkinter?


Piszę program w języku Python w
TKinter
na Ubuntu do importowania i drukowania
nazwa plików z określonego folderu w widżecie
Text
.
Po prostu dodaje nazwy plików do poprzednich nazw plików w widżecie
Tekst
, ale najpierw chcę go wyczyścić, a następnie dodać nową listę nazw plików.
Ale staram się wyczyścić poprzednią listę widżetów
Text
z
nazwy plików.
Czy ktoś może wyjaśnić, jak wyczyścić widżet
Text
?
Zrzut ekranu i kodowanie podano poniżej:
https://i.stack.imgur.com/B7ASq.png
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()

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdziłem po swojej stronie, dodając po prostu „1.0” i zaczęło działać
tex.delete('1.0', END)

możesz też tego spróbować
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Według tkinterbook kod do wyczyszczenia elementu tekstowego powinien wyglądać następująco:
text.delete(1.0,END)

To zadziałało dla mnie.

źródło
http://effbot.org/tkinterbook/text.htm#patterns
Różni się to od wyczyszczenia elementu wejściowego, które odbywa się w następujący sposób:
entry.delete (0, END) #note 0 zamiast 1.0
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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()

Oto przykład
txt.delete (1.0, END)
, jak wspomniano.
Używanie
lambda
pozwala nam na usuwanie treści bez definiowania faktycznej funkcji.
Mam nadzieję że to pomoże
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

ta praca
import tkinter as tk
inputEdit.delete("1.0",tk.END)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

dla mnie „1.0” nie działało, ale „0” działało. To Python 2.7.12, po prostu FYI. Zależy również od sposobu importowania modułu. Oto jak to się robi:
import Tkinter as tk
window = tk.Tk()
textBox = tk.Entry(window)
textBox.pack()

Poniższy kod jest wywoływany, gdy trzeba go wyczyścić. W moim przypadku był przycisk Zapisz, który zapisuje dane z pola tekstowego wejściowego i po kliknięciu przycisku pole tekstowe jest czyszczone
textBox.delete('0',tk.END)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że to jest:
text.delete("1.0", tkinter.END)

Lub jeśli chcesz
from tkinter import *
text.delete("1.0", END)

Powinno działać

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się