我正在尝试清除我已经使用按钮'Clear'键入的文本框。但是单击按钮后它不会清除文本!
请解决我的问题!将不胜感激!
import tkinter as tki
class App(object):
def __init__(self,root):
self.root = root
txt_frm = tki.Frame(self.root, width=600, height=400)
txt_frm.pack(fill="both", expand=True)
# ensure a consistent GUI size
txt_frm.grid_propagate(False)
self.txt1 = tki.Text(txt_frm, borderwidth=3, relief="sunken", height=4,width=55)
self.txt1.config(font=("consolas", 12), undo=True, wrap='word')
self.txt1.grid(row=0, column=1, sticky="nsew", padx=2, pady=2)
button1 = tki.Button(txt_frm,text="Clear", command = self.clearBox)
button1.grid(column=2,row=0)
def clearBox(self):
self.txt1.delete(0, END)
root = tki.Tk()
app = App(root)
root.mainloop()
答案 0 :(得分:2)
由于END
位于tkinter中,您需要使用tki.END
或"end"
(带引号,小写),您的起始索引也应为"1.0"
(感谢BryanOakley)而不是0
。
这个应该有效。
def clearBox(self):
self.txt1.delete("1.0", "end")
编辑:顺便说一句,如果您使用pack_propagate
代替grid_propagate
,那就更好了,因为您使用pack
来放置框架。
EDIT2 :关于该索引事项,它在here下的行和列部分中编写。
...行号从1开始,而列号从0开始......
请注意,行/列索引可能看起来像浮点值,但很少可能将它们视为这样(例如,考虑位置1.25与1.3)。在引用缓冲区中的第一个字符时,我有时会使用1.0而不是“1.0”来保存一些键击,但这就是它。