在python进程之间共享tkinter窗口对象

时间:2018-04-21 10:31:32

标签: python tkinter python-multiprocessing multiprocessing-manager

以下是我正在处理的情景:

使用Multiprocessing.Process启动工作进程的主进程。工作进程创建用于渲染的tkinter窗口。 如果我希望终止渲染,我只需要执行process.terminate()。 虽然这以编程方式工作,但我在屏幕上看到一些工件,因为窗口破坏没有正确完成。 我的计划是与主进程共享tkinter对象,从而使其能够撤销然后销毁窗口。

我试过,Multiprocessing.Queue,Multiprocessing.Manager但由于以下错误而无效:

TypeError: can't pickle _tkinter.tkapp objects

我认为我的假设是错误的。 什么是适当的python编程技术来实现这一目标?

1 个答案:

答案 0 :(得分:2)

您无法在进程之间共享tkinter对象。 Tkinter小部件依赖于嵌入式tcl解释器,并且无法在线程或进程之间共享嵌入式解释器。