下面的程序提供了一个错误消息:Tkinter.self导致无限循环,错误
"RuntimeError: maximum recursion depth exceeded while calling a Python object".
原因是self.after
。
当我创建的计算功能的while true
环它工作正常,但我想导致与self.after
的循环,这是我读它应该在的连接来实现与Tkinter的。任何建议表示赞赏。
import Tkinter as tk
import ttk
import time
class App(tk.Tk):
def __init__(self):
self.root=tk.Tk()
self.var1=tk.StringVar()
self.i=0
def Calculation(self):
# complex calculations that last 30 minutes in total
self.i+=1
self.var1.set(str(self.i))
self.root.update()
self.after(100, self.Calculation)
def Gui(self):
your_label=tk.Label(self.root,textvariable=self.var1).pack()
A=App()
A.Gui()
A.Calculation()
你想完成什么?每次计算每100毫秒开始另一次计算,并且这些计算会启动进一步计算等。这不可能是您想要的。 – saulspatz
这是一个蒙特卡罗模拟。所以每次计算都需要进行很多次,但是由于它们持续了一段时间,每次计算后我都需要在我的gui中进行更新。此外,我希望能够在计算过程中更改一些参数,理想情况下使用滑块。 – Nickpick