2015-01-15 276 views
12

我正在Ubuntu上编写一个Python程序TKinter来导入并打印 来自Text小部件中特定文件夹的文件的名称。 这只是将文件名添加到Text 窗口小部件中的以前的电影名称,但我想先清除它,然后添加一个新的文件名列表。 但我正在努力清除Text小部件的前一个列表 文件名。如何清除/删除Tkinter Text小部件的内容?

有人可以解释如何清除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

您是否阅读过文本小部件的任何文档?此功能清楚记录。你说你在挣扎,你能告诉我们你试过了什么吗? – 2015-01-15 15:22:51

+1

也许http://effbot.org/tkinterbook/entry.htm#Tkinter.Entry.delete-method – 2015-01-15 15:34:39

+0

你可以在这里写一条语句来得到我要求的结果 – Fahadkalis 2015-01-15 15:45:41

回答

33

我只需添加 '1.0' 在我的身边检查,并开始工作

tex.delete('1.0', END) 

你也可以试试这个

+0

谢谢,一旦我意识到我需要做一个 tex的工作。config(state = NORMAL) ,然后我可以删除它。 – Seth 2017-05-17 20:54:22

9

根据tkinterbook的代码cl耳文本元素应该是:

text.delete(1.0,END) 

这对我有效。 source

它从清除的条目元件,其这样做不同:

entry.delete(0,END)#note的0,而不是1.0

+0

我发现奇怪的是'1.0'工作(虽然它的确的确如此),因为我的理解是Tkinter索引应该被指定为像'1.0'这样的字符串(这也是可行的,并且是在大多数其他地方同一份文件)。 – martineau 2017-11-11 16:39:38

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可以在不定义实际功能的情况下删除内容。

希望可以帮到