我正在尝试从文本框中删除一个字符串。
但是我收到了以下错误:
TclError: bad text index "3"
以下是代码:
self.keys = "Bye"
def undo(self):
I = self.Cont.search(self.keys,1.0,stopindex=END)
self.Cont.delete(I,len(I))
答案 0 :(得分:0)
我假设您正在使用TkInter和Text小部件。
如果是这样,那么delete()
方法需要两个文本索引值,但是你给它一个索引和len()
索引字符串,这是没有意义的。
我想你想要这样的东西:
def undo(self):
countVar = IntVar()
I = self.Cont.search(self.keys, 1.0, stopIndex=END, count=countVar)
self.Cont.delete(I,'%s+%d chars' %(I, countVar.get()))
count参数告诉search将匹配长度存储到IntVar对象中,然后可以使用.get()方法检索该对象。
然后,delete()方法将获得一个结束索引,如:"1.0 + 3 chars"
,它应该识别刚好超过'