2015-01-15 25 views
12

Ich schreibe ein Python-Programm in TKinter auf Ubuntu zu importieren und den Namen der Dateien aus bestimmten Ordner in,Widget zu drucken. Es ist nur Hinzufügen von Dateinamen zu den vorherigen Dateinamen im Widget Text , aber ich möchte es zuerst löschen, dann fügen Sie eine neue Liste von Dateinamen. Aber ich habe Schwierigkeiten, die Widget vorherige Liste von Dateinamen zu löschen.Wie lösche/lösche ich den Inhalt eines Tkinter Text Widgets?

Kann mir bitte jemand erklären, wie man ein Widget löscht?

Screen und Codierung geben unter:

screenshot showing text widget with contents

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

Haben Sie irgendwelche Dokumentation für das Text-Widget gelesen? Diese Funktion ist eindeutig dokumentiert. Du sagst, du kämpfst, kannst du uns zeigen, was du versucht hast? –

+1

Vielleicht http://effbot.org/tkinterbook/entry.htm#Tkinter.Entry.delete-method –

+0

Kannst du plz die eine Aussage hier schreiben, um mein erforderliches Resultat zu erhalten – Fahadkalis

Antwort

33

Ich habe auf meiner Seite nach nur ‚1,0‘ Hinzufügen und starten

tex.delete('1.0', END) 

arbeiten, können Sie auch versuchen, diese

+0

Danke, das hat funktioniert, sobald ich realisierte, dass ich eine Tex machen musste.config (state = NORMAL) bevor ich es löschen konnte. – Seth

9

Nach dem tkinterbook der Code zu cl Ohr ein Textelement sollte sein:

text.delete(1.0,END) 

Das funktionierte für mich. source

Es unterscheidet sich von Löschen eines Eintragungselement, das wie das getan wird:

entry.delete (0, Ende) #Anmerkung die 0 statt 1,0

+0

Ich finde es merkwürdig, dass '1.0' funktioniert (obwohl es tatsächlich funktioniert), da mein Verständnis ist, dass die Tkinter Indizes als Strings wie' '1.0'' spezifiziert werden sollten (was auch funktioniert und an den meisten anderen Orten in das gleiche Dokument). – martineau

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

Hier ist ein Beispiel für txt.delete(1.0,END) wie erwähnt.

Die Verwendung von lambda ermöglicht es uns, den Inhalt zu löschen, ohne eine tatsächliche Funktion zu definieren.

Hoffe, dass hilft

Verwandte Themen