Python Safetkinter运行时错误:递归限制
因此,我一直在尝试为tkinter(我正在使用Python3.3)获取一个线程安全适配器,以帮助我的一些项目。我偶然发现了一个名为“safetkinter”(recipe)的配方,它承诺将所有gui调用路由到主线程。我试过了,但是我遇到了一个运行时错误问题,它不断地出现,破坏了我的努力。我试过各种各样的方法来修复它,但运气不好。所以这里有人知道让它工作的诀窍吗?(另外,safetkinter使用了threadbox配方和依赖关系的affinity配方。我还认为affinity模块是这个问题的罪魁祸首。) 我用来测试模块的脚本:Python Safetkinter运行时错误:递归限制,python,multithreading,python-3.x,tkinter,ttk,Python,Multithreading,Python 3.x,Tkinter,Ttk,因此,我一直在尝试为tkinter(我正在使用Python3.3)获取一个线程安全适配器,以帮助我的一些项目。我偶然发现了一个名为“safetkinter”(recipe)的配方,它承诺将所有gui调用路由到主线程。我试过了,但是我遇到了一个运行时错误问题,它不断地出现,破坏了我的努力。我试过各种各样的方法来修复它,但运气不好。所以这里有人知道让它工作的诀窍吗?(另外,safetkinter使用了threadbox配方和依赖关系的affinity配方。我还认为affinity模块是这个问题的罪魁
import safetkinter as tkinter
class Main(tkinter.Tk):
def __init__(self):
self._setup()
self.mainloop()
def _setup(self):
tkinter.Button(self, text='Push me!').pack()
if __name__ == '__main__':
Main()
此外,这里还有一个指向从控制台获取的异常回溯的链接:
正如我在safetkinter使用示例中看到的,初始化应该以另一种方式完成。下面是基于您的代码和safetkinter示例(带按钮的框架)的简短工作代码。您可以扩展和改进它:
import safetkinter as tkinter
class Main(tkinter.Frame):
def __init__(self, master, **kw):
super().__init__(master, **kw)
@classmethod
def main(cls):
root = cls.create_application_root()
self = cls.setup_class_instance(root)
root.mainloop()
@staticmethod
def create_application_root():
root = tkinter.Tk()
root.minsize(400, 340)
root.title('Title')
return root
@classmethod
def setup_class_instance(cls, root):
instance = cls(root)
instance.button = tkinter.Button(root, text='Push me!').pack()
return instance
if __name__ == '__main__':
Main.main()