Python MultiProcessing 使 tkinter GUI 再次出现
Python MultiProcessing make tkinter GUI appear again
我正在学习创建一个图形用户界面来开始多处理打印。
当我点击开始按钮时,它再次绘制图形用户界面。有没有限制它只限于 运行 多处理打印?
创建了 gui.py :
def stopstart():
global instance
if startbtn['text']=="start":
# Multiprocessing start here
RunMultiProcessor()
# End of Multiprocessing
startbtn.configure(text="END")
startbtn.configure(bg="#ff8a65")
else:
popuptimer()
else:
startbtn.configure(text="start")
startbtn.configure(bg="#e2f1f8")
startbtn = Button(leftframe, text = "start",
background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)
创建了 multiprocessing.py :
def run():
print("printing")
time.sleep(2)
print("print end")
def RunMultiProcessor():
for _ in range(2):
processes[i] = multiprocessing.Process(target=run,))
processes[i].start()
感谢@Mark Tolonen 的回答。下面是最终代码。
def stopstart():
global instance
if startbtn['text']=="start":
# Multiprocessing start here
RunMultiProcessor()
# End of Multiprocessing
startbtn.configure(text="END")
startbtn.configure(bg="#ff8a65")
else:
popuptimer()
else:
startbtn.configure(text="start")
startbtn.configure(bg="#e2f1f8")
startbtn = Button(leftframe, text = "start",
background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)
if __name__ == '__main__':
top.mainloop()
我正在学习创建一个图形用户界面来开始多处理打印。 当我点击开始按钮时,它再次绘制图形用户界面。有没有限制它只限于 运行 多处理打印?
创建了 gui.py :
def stopstart():
global instance
if startbtn['text']=="start":
# Multiprocessing start here
RunMultiProcessor()
# End of Multiprocessing
startbtn.configure(text="END")
startbtn.configure(bg="#ff8a65")
else:
popuptimer()
else:
startbtn.configure(text="start")
startbtn.configure(bg="#e2f1f8")
startbtn = Button(leftframe, text = "start",
background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)
创建了 multiprocessing.py :
def run():
print("printing")
time.sleep(2)
print("print end")
def RunMultiProcessor():
for _ in range(2):
processes[i] = multiprocessing.Process(target=run,))
processes[i].start()
感谢@Mark Tolonen 的回答。下面是最终代码。
def stopstart():
global instance
if startbtn['text']=="start":
# Multiprocessing start here
RunMultiProcessor()
# End of Multiprocessing
startbtn.configure(text="END")
startbtn.configure(bg="#ff8a65")
else:
popuptimer()
else:
startbtn.configure(text="start")
startbtn.configure(bg="#e2f1f8")
startbtn = Button(leftframe, text = "start",
background = "#e2f1f8", fg = "#000000",bd=1,command = stopstart)
startbtn.pack(side = TOP,expand = FALSE,fill = X)
if __name__ == '__main__':
top.mainloop()