Многопроцессорная обработка в tkinter не приводит к выводу текста в output_box - PullRequest
0 голосов
/ 28 марта 2020

Что я хочу сделать, так это то, что когда я нажимаю кнопку очистки, он очищает несколько веб-сайтов с помощью многопроцессорной обработки и помещает вывод в текстовое поле, предоставленное 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 выводится в stdout, а не в output_box. Что я должен сделать, чтобы я получил нужный вывод (что мы вставляем в поле output_box в функции f) в моем текстовом поле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...