【发布时间】:2015-11-29 06:32:12
【问题描述】:
很久以前我开始使用线程。我的 GUI 中任何功能的线程。但上次我专注于多处理模块。这里的问题是,当我生成新进程时,我不知道如何连接我的 GUI。 这是示例代码 - 一键“执行”线程,它按预期工作。 第二个按钮生成过程,但我的 GUI 未更新(输入字段未填充文本)。 如何解决? 如何从 Process 接收“打印”报表? 谢谢!
import tkinter as tk
import time
from multiprocessing import Process, Pool
from threading import Thread
root = tk.Tk()
inputEn = tk.Entry(root)
inputEn.pack()
def runner(txt):
print("runner")
time.sleep(5)
# this doesn't work when I use it with Process
inputEn.insert(0, "{}".format(txt))
print("runner end")
def process():
p = Process(target=runner, args=("process",))
p.start()
def thread():
p = Thread(target=runner, args=("thread",))
p.start()
btnStart = tk.Button(root, text="Start Process", command=process)
btnStart.pack()
btnStart2 = tk.Button(root, text="Start Thread", command=thread)
btnStart2.pack()
if __name__=="__main__":
root.mainloop()
【问题讨论】:
标签: python multithreading user-interface tkinter