2015-01-15 26 views
12

Text widget'ındaki özel klasördeki dosyaların adını almak ve yazdırmak için Ubuntu üzerinde TKinter numaralı Python programını yazıyorum. Sadece dosya adlarını Text tarihinde bir önceki dosya adlarına ekliyor, ancak önce bunu silmek istiyorum, ardından dosya adlarının yeni bir listesini ekleyin. Ama Text widget'in önceki dosya isimlerini temizlemeyi düşünüyorum.Tkinter Text küçük aracının içeriği nasıl silinir/silinir?

Birisi bir Text widget'ını nasıl temizleyeceğinizi açıklayabilir mi?

Screenshoot ve kodlama aşağıda veriyor:

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

Metin parçacığı için herhangi bir belgeyi okudunuz mu? Bu özellik açıkça belgelenmiştir. Sen mücadele ediyorsun, denediğin şeyi bize gösterebilir misin? –

+1

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

+0

İstenilen sonucu almak için buraya bir açıklama yazabilir misin – Fahadkalis

cevap

33

Sadece '1.0' ekleyerek yanımda kontrol ve ayrıca bu deneyebilirsiniz

tex.delete('1.0', END) 

çalışmaya başlamak

+0

Teşekkürler, bir kez farkettim ki bir tex yapmam gerekti.silmeden önce config (state = NORMAL) . – Seth

9

Not defterine göre kod, cl Bir metin elemanı aşağıdaki gibi olmalıdır:

text.delete(1.0,END) 

Bu benim için çalıştı. source

Böyle yapılır bir giriş elemanı, temizleme farklıdır:

entry.delete (0, SON) 0 yerine burada 1,0

+0

Anladığım kadarıyla, 1.0'ın çalışması (gerçekten de olsa), Tkinter indeksleri '' 1.0 '' gibi dizeler olarak belirtilmelidir (ki bu da çalışır ve diğer yerlerin çoğunda nasıl yapılır aynı belge). – 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() 

arasında #note txt.delete(1.0,END) bir örnek söylendiği gibi.

lambda kullanımı, gerçek bir işlev tanımlamaksızın içeriği silebilmemizi sağlar.

Yardım bu yardımcı olur