tkinter - tkinter 中的多处理未在 output_box 中获得文本输出
问题描述
我想要做的是,当我按下抓取按钮时,它会使用 mutliprocessing 抓取多个网站,并将输出放在 tkinter 提供的文本框中。以下是我的代码的高级解释。
import multiprocessing
from tkinter import ttk
from tkinter import *
import tkinter as tk
def do():
global arr
pool = multiprocessing.Pool(processes=2)
pool.map(f,arr)
pool.terminate()
pool.join()
root = tk.Tk()
output_box=tk.Text(root)
output_box.pack()
def f(x):
global output_box
output_box.insert("end-1c",str(x))
print(x)
if __name__ == '__main__':
arr=list(range(10))
scrape_button=Button(root,text='Scrape!',command=do)
scrape_button.pack()
root.mainloop()
代码在执行时会给出带有按钮和文本窗口的 tkinter 窗口。但是当我点击抓取时,x 打印在标准输出中,但不在 output_box 中。我应该怎么做才能在我的文本框中获得预期的输出(我们在函数 f 的 output_box 中插入的内容)?
解决方案
推荐阅读
- php - 无法在其他页面中读取 PHP 会话变量
- javascript - 我的 pangram javascript 有什么问题?
- python - Python 3.8.0 的计时器
- python - TypeError:“函数”类型的参数不可迭代:django 错误
- python-3.x - 为什么 mongodb 集合 find 不起作用?
- javascript - 如何使用映射或 forEach 解析对象内的对象数组
- mysql - 数据透视表中的自动递增列名
- c - 如何找到字符串中每个单词的长度?
- swift - 刷新不记名令牌并使用 AccessTokenPlugin
- docker - docker-compose.yml 中的 {} 映射到主机系统上的什么?