Как я могу запустить долгосрочную задачу в Tkinter, не замораживая пользовательский интерфейс (сохраняя обновления в режPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу запустить долгосрочную задачу в Tkinter, не замораживая пользовательский интерфейс (сохраняя обновления в реж

Сообщение Anonymous »

Я строю приложение Tkinter, где я визуализирую алгоритмы сортировки на Canvas.
Проблема: всякий раз, когда я запускаю функцию сортировки, весь пользовательский интерфейс замораживает, пока функция не завершится. < /p>
Вот упрощенная версия моего кода: < /p>
import tkinter as tk
import time

def bubble_sort(canvas, data):
n = len(data)
for i in range(n):
for j in range(0, n-i-1):
if data[j] > data[j+1]:
data[j], data[j+1] = data[j+1], data[j]
draw_data(canvas, data)
time.sleep(0.1) #
Проблемы, с которыми я сталкиваюсь: < /p>
ui замораживает во время сортировки, и я не могу взаимодействовать с окном. (Поскольку tkinter не является потоком).
Какова лучшая практика в Tkinter для выполнения длинных задач (например, сортировки) при сохранении реагирования на графический интерфейс? Canvas?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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