0
import Tkinter,multiprocessing
class cambiar(object):
def __init__(self,master,estado=False):
self.master = master
if estado == False:
self.run()
def run(self):
self.master['text'] = 'que tal'
class body(object):
def __init__(self,win):
self.win = win
lista = ['label','botones']
cont = len(lista)
for i in range(cont):
eval('self.'+str(lista[i]+'()'))
def label(self):
self.label_1 = Tkinter.Label(self.win,text='hola')
self.label_1.grid(row=0,column=0)
def botones(self):
self.boton_1 = Tkinter.Button(self.win,text='cambiar',command=lambda :self.win.proceso(self.label_1))
self.boton_1.grid(row=1,column=0)
class main(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.geometry('500x500')
self.b = body(self)
def proceso(self,wid):
self.p = multiprocessing.Process(target=cambiar,args=(wid,))
self.p.start()
root = main()
root.mainloop()
我有这样的代码,奇怪的是,我想要的是学习主进程可以改变属性,比如在这种情况下的标签,没有人知道我该怎么做?如何使用多重处理更改tkinter中的标签?
只使用多处理例如,实际的代码是用于Kivy,但我使用tkinter进行测试,并且Kivy要求我为程序使用多处理,有没有办法通过多处理来执行我想要的操作? – user3509050
是的,有办法,但他们不是很好,因为你不能引用一个创建的对象。 http://stackoverflow.com/questions/21968278/multiprocessing-share-unserializable-objects-between-processes尝试编号2.你不应该改变另一个进程的标签,而是从主循环线程。 – User
看看侧栏。有很有用的链接。这是其中之一:http://stackoverflow.com/questions/15057789/multiprocessing-in-python-tkinter?rq=1 – User