Многопроцессорность с индикатором выполнения tkinter, минимальный примерPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Многопроцессорность с индикатором выполнения tkinter, минимальный пример

Сообщение Anonymous »

Я ищу способ отслеживать задачу многопроцессорной обработки с помощью индикатора выполнения Tkinter. Это можно сделать очень просто с помощью tqdm для отображения в терминале.
Вместо использования tqdm я бы хотел использовать ttk.Progressbar< /code>, но все попытки, которые я предпринимал, блокируют задачи при попытке обновить индикатор выполнения (например, с помощью update_idletasks и тому подобного). Ниже приведен шаблон решения, которое я ищу:

Код: Выделить всё

import time
from multiprocessing import Pool
from tqdm import tqdm
import tkinter as tk
import tkinter.ttk as ttk

def task(x):
time.sleep(0.1)
return x * x

def start_task():
num_processes = 12
num_tasks = 100

with Pool(processes=num_processes) as pool:
with tqdm(total=num_tasks, desc="Processing") as pbar:
def update_progress(_):
# 
pbar.update(1)

for i in range(num_tasks):
pool.apply_async(task, args=(i,), callback=update_progress)
pool.close()
pool.join()

if __name__ == "__main__":
root = tk.Tk()
root.title("Task Progress")
progress_bar = ttk.Progressbar(root, maximum=100, length=300)
progress_bar.pack(pady=20)
button = tk.Button(text="Start", command=start_task)
button.pack(fill="x", padx=10, pady=10)
root.mainloop()
В решении я также хотел бы получить выходные данные задачи (в данном случае список x*x).
Если другая многопроцессорная структура будет работать лучше, пожалуйста, не стесняйтесь вносить изменения (пул показался самым простым для демонстрации).
Этот вопрос уже задавался при переполнении стека, но все предыдущие ответы Я обнаружил, что примеров не так уж и мало, и они не кажутся мне очень полезными.

Подробнее здесь: https://stackoverflow.com/questions/793 ... al-example
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Многопроцессорность с индикатором выполнения tkinter, минимальный пример
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Многопроцессорность с индикатором выполнения tkinter, минимальный пример
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Многопроцессорность с индикатором выполнения tkinter, минимальный пример
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Многопроцессорность с индикатором выполнения tkinter, минимальный пример
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Tkinter GUI с индикатором выполнения
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»