如何 clear/delete Tkinter 文本小部件的内容?
How to clear/delete the contents of a Tkinter Text widget?
我正在 Ubuntu TKinter
中编写一个 Python 程序来导入和打印
Text
小部件中特定文件夹中的文件名。
它只是将文件名添加到 Text
中的先前文件名
小部件,但我想先清除它,然后添加一个新的文件名列表。
但我正在努力清除 Text
小部件的先前列表
文件名。
有人可以解释一下如何清除 Text
小部件吗?
屏幕截图和编码如下:
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.0”来检查我这边,它开始工作
tex.delete('1.0', END)
你也可以试试这个
根据 tkinterbook,清除文本元素的代码应该是:
text.delete(1.0,END)
这对我有用。 source
它不同于清除条目元素,它是这样完成的:
entry.delete(0,END) #注意 0 而不是 1.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
的使用使我们能够在不定义实际函数的情况下删除内容。
这有效
import tkinter as tk
inputEdit.delete("1.0",tk.END)
对我来说,“1.0”不起作用,但“0”起作用了。这是 Python 2.7.12,仅供参考。还取决于您如何导入模块。方法如下:
import Tkinter as tk
window = tk.Tk()
textBox = tk.Entry(window)
textBox.pack()
并且在需要清除的时候会调用下面的代码。在我的例子中,有一个保存按钮,用于保存输入文本框中的数据,单击按钮后,文本框被清除
textBox.delete('0',tk.END)
我认为:
text.delete("1.0", tkinter.END)
或者如果你这样做了 from tkinter import *
text.delete("1.0", END)
应该可行
很多答案要求您使用 END
,但如果这对您不起作用,请尝试:
text.delete("1.0", "end-1c")
text.delete(0, END)
这将删除文本框内的所有内容
我正在 Ubuntu TKinter
中编写一个 Python 程序来导入和打印
Text
小部件中特定文件夹中的文件名。
它只是将文件名添加到 Text
中的先前文件名
小部件,但我想先清除它,然后添加一个新的文件名列表。
但我正在努力清除 Text
小部件的先前列表
文件名。
有人可以解释一下如何清除 Text
小部件吗?
屏幕截图和编码如下:
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.0”来检查我这边,它开始工作
tex.delete('1.0', END)
你也可以试试这个
根据 tkinterbook,清除文本元素的代码应该是:
text.delete(1.0,END)
这对我有用。 source
它不同于清除条目元素,它是这样完成的:
entry.delete(0,END) #注意 0 而不是 1.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
的使用使我们能够在不定义实际函数的情况下删除内容。
这有效
import tkinter as tk
inputEdit.delete("1.0",tk.END)
对我来说,“1.0”不起作用,但“0”起作用了。这是 Python 2.7.12,仅供参考。还取决于您如何导入模块。方法如下:
import Tkinter as tk
window = tk.Tk()
textBox = tk.Entry(window)
textBox.pack()
并且在需要清除的时候会调用下面的代码。在我的例子中,有一个保存按钮,用于保存输入文本框中的数据,单击按钮后,文本框被清除
textBox.delete('0',tk.END)
我认为:
text.delete("1.0", tkinter.END)
或者如果你这样做了 from tkinter import *
text.delete("1.0", END)
应该可行
很多答案要求您使用 END
,但如果这对您不起作用,请尝试:
text.delete("1.0", "end-1c")
text.delete(0, END)
这将删除文本框内的所有内容