首页 > 解决方案 > 如何在多进程中更新 Tkinter 小部件?

问题描述

我正在尝试使用进程更新框架,但我无法这样做。如果我不使用进程,则框架会使用子元素进行更新,但在使用多进程时不会。

这是我尝试过的(代码是类的一部分):

def zx(self, q):
    print('asdadsas')
    lbl = Label(self.myframe, text="assagj")
    lbl.pack(ipady=2, padx=10, pady=5, anchor=NW)
try:
    p = multiprocessing.Process(target=self.zx, args=('a', ))
    p.daemon=True
    p.start()
    sleep(2)
    p.terminate()
except KeyboardInterrupt:
    p.terminate()
except:
    p.terminate()

标签: pythontkintermultiprocessingtk

解决方案


Tkinter 小部件不能跨越进程。所有对 Tkinter 小部件的访问都必须来自同一进程。

这是因为小部件存在于嵌入式Tcl解释器中,并且 Tcl 解释器不能跨进程共享。


推荐阅读