Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python32\lib\tkinter\__init__.py", line 1456, in __call__
return self.func(*args)
File "C:\Users\littl_000\Documents\Python\pd\PD GUI.py", line 185, in playmove
grid.after_idle(automove(""))
File "C:\Python32\lib\tkinter\__init__.py", line 534, in after_idle
return self.after('idle', func, *args)
File "C:\Python32\lib\tkinter\__init__.py", line 516, in after
self.tk.call('after', ms)
_tkinter.TclError: wrong # args: should be "after idle script script ..."
代码只是,grid.after_idle(automove("")) 它之前有用,但它是意大利面条代码,我在另一个函数中调用了一个函数,automove在网格上移动了一些点(很多点非常快,这是一个数学问题),我使用后空闲,所以即使在此循环运行时我尝试移动它时tkinter窗口也不会崩溃,可能需要几分钟。我不知道这个错误意味着什么,当我使用main.update_idletasks()
时它似乎不起作用答案 0 :(得分:0)
after_idle
将引用带到函数中。当你这样做时:
grid.after_idle(automove(""))
...您立即调用automove
,该函数的结果将传递给after_idle
。以上内容完全相同:
result = automove("")
grid.after_idle(result)
很可能automove("")
正在返回None
,这就是为什么after_idle
会抛出它正在抛出的错误。
如果您需要传递参数,可以将它们作为after_idle
的其他参数包含在内:
grid.after_idle(automove, "")