J'écris un programme Python dans TKinter
sur Ubuntu pour importer et imprimer Le nom des fichiers d'un dossier particulier dans Text
widget . Il s'agit simplement d'ajouter des noms de fichiers aux noms de fichiers précédents dans le répertoire. Text
Widget, mais je veux d'abord l'effacer, puis ajouter une nouvelle liste de noms de fichiers . Mais j'ai du mal à effacer la liste précédente des noms de fichiers du fichier Text
.
Quelqu'un peut-il s'il vous plaît expliquer comment effacer un widget Text
?
Screenshoot et codage est donné ci-dessous:
import os
from Tkinter import *
def viewFile():
path = os.path.expanduser("~/python")
for f in os.listdir(path):
tex.insert(END, f + "\n")
if __== '__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()
J'ai vérifié de mon côté en ajoutant simplement '1.0' et ça commence à fonctionner
tex.delete('1.0', END)
vous pouvez aussi essayer ceci
Selon le tkinterbook, le code pour effacer un élément de texte devrait être:
text.delete(1.0,END)
Cela a fonctionné pour moi. la source
C'est différent d'effacer un élément d'entrée, ce qui se fait comme ceci:
entry.delete (0, END) #note le 0 au lieu de 1.0
cela marche
import tkinter as tk
inputEdit.delete("1.0",tk.END)
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()
Voici un exemple de txt.delete(1.0,END)
tel que mentionné.
L'utilisation de lambda
nous permet de supprimer le contenu sans définir de fonction réelle.
J'espère que cela pourra aider
pour moi, "1.0" n'a pas fonctionné, mais "0" a fonctionné. Ceci est Python 2.7.12, juste pour votre information. Cela dépend également de la manière dont vous importez le module. Voici comment:
import Tkinter as tk
window = tk.Tk()
textBox = tk.Entry(window)
textBox.pack()
Et le code suivant est appelé lorsque vous devez le supprimer. Dans mon cas, il y avait un bouton Enregistrer qui enregistre les données de la zone de texte Entrée et après avoir cliqué sur le bouton, la case est effacée
textBox.delete('0',tk.END)