用 tkinter 写了个聊天小软件,想试试多进程。但是调用 p.start() 函数后,虽然调用成功了,(有输出结果),但是 target 的函数中,申请 GUI 窗口的函数 Tk() 似乎没有正常工作。如果我把 start(),改成 run(),他还是能够正常工作,似乎还是进程问题,有朋友能指点一下吗。
def startchat(self,account):
p = Process(target = chat.main,args=(account,self.udpCliSock,self.ADDR))
p. start()
def main(account, udpCliSock, ADDR):
Chat(account, udpCliSock, ADDR)
class Chat:
def __init__(self,account,udpCliSock,ADDR):
self.ADDR = ADDR
self.udpCliSock=udpCliSock
root = Tk()
1
neroransom OP 解决了,似乎是开了新进程后,原先写在主程序的 mainloop 不管用了,因此要在构建这个申请新窗口里再加一个 mainloop
即 class Chat def __init__(self,account,udpCliSock,ADDR): self.ADDR = ADDR self.udpCliSock=udpCliSock root = Tk() root.mainloop |