在RuntimeError中调用after结果:超出最大递归深度

时间:2017-05-12 11:32:00

标签: python recursion tkinter

我正在使用tkinter,我正在尝试将字符串[在本例中为原始文件]与文本小部件中的文本进行比较。这是函数和我调用函数的地方:

def checkText():
    if(text.get("1.0", "end-1c") != currentText):
        print("Changed")

    root.after(1000, checkText())

我打电话的地方:

root.after(1000, checkText()) #after 1 second, check text to see if it has changed

它返回错误:

  File "main.py", line 65, in checkText
  if(text.get("1.0", "end-1c") != currentText):
  RuntimeError: maximum recursion depth exceeded

除了数百个'File“main.py”,第65行,在checkText'

我可能会忽略一些显而易见的事情,但感谢他们的帮助。

这些是函数在程序中使用或引用的唯一位置,但只是在这里,这里定义了currentText:

myfile = tkFileDialog.askopenfile(title='Open a file', mode='r')
    text.delete('1.0', END)
    loadedfile = myfile.read()
    currentText = myfile.read()

loadedFile直接放入文本小部件并且工作正常,因此我假设currentText应该与小部件中的loadedFile / text相同。

感谢。

编辑:格式化,我也意识到我可以说currentText = loadedFile来简化它,但我保留原始代码的问题

编辑:获取文本的整个功能

def fileOpen(textView):
try:
    myfile = tkFileDialog.askopenfile(title='Open a file', mode='r')
    text.delete('1.0', END)
    loadedfile = myfile.read()
    currentText = loadedFile
    currentFile = myfile.name
    currentName = currentFile
    currentName = currentName.rsplit('/', 1)[-1] #get the 'name.ext' part only
    currentName = currentName.rsplit('\\', 1)[-1] #incase you're using windows
    currentFileButton.config(text = currentName)
    myfile.close()
    textView.insert("end", loadedfile)
except:
    return

def saveAs(): #define how to save files
try:
    global text
    t = text.get("1.0", "end-1c")
    saveLocation = tkFileDialog.asksaveasfilename()
    file1 = open(saveLocation, "w+")
    file1.write(t)
    file1.close()
except:
    return

后:

text = Text(textFrame, bd=0, bg=color, fg=textColor) #make text editor box

0 个答案:

没有答案