本文介绍了如何在多进程中更新 Tkinter 小部件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to update a frame using a process, but I am unable to do so. If I don’t use a process, the frame is updating with the child elements, but not when using multiprocess.

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

This is what I've tried (the code is part of a class):

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()

推荐答案

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

Tkinter widgets can't span processes. All access to Tkinter widgets must be from within the same process.

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

This is because the widgets exist in an embedded Tcl interpreter, and that Tcl interpreter can't be shared across processes.

这篇关于如何在多进程中更新 Tkinter 小部件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-10 21:40