2015-01-15 5 views
12

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

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

Screenshoot и кодирование дает ниже:

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

Вы прочитали какую-либо документацию для текстового виджета? Эта функция четко документирована. Вы говорите, что вы боретесь, можете ли вы показать нам, что вы пробовали? –

+1

Возможно, http://effbot.org/tkinterbook/entry.htm#Tkinter.Entry.delete-method –

+0

Можете ли вы написать одно заявление здесь, чтобы получить мой требуемый результат? – Fahadkalis

ответ

33

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

tex.delete('1.0', END) 

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

+0

Спасибо, это сработало, как только я понял, что мне нужно сделать текс .config (state = NORMAL) , прежде чем я смог удалить его. – Seth

9

Согласно tkinterbook, код cl ухе текстовый элемент должен быть:

text.delete(1.0,END) 

Это сработало для меня. source

Это отличается от очистки въездного элемента, который делается так:

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

+0

Мне кажется странным, что '1.0' работает (хотя это действительно так), так как я понимаю, что индексы Tkinter должны быть указаны как строки, такие как' '1.0'' (что также работает и как это делается в большинстве других мест в тот же документ). – 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() 

Вот пример txt.delete(1.0,END) как уже упоминалось.

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

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

Смежные вопросы