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()
我有这个代码,奇怪的是没有意义我想要的是学习主进程可以改变属性,例如在这种情况下的标签,有谁知道我该怎么做?
答案 0 :(得分:0)
multiprocessing.Pool
并等待异步调用的未来准备就绪。您可以等待调度具有root.after
的函数来测试未来状态。完成并行计算时更改标签=当将来有值时更改标签。