PyQt5: Задержка при рисовании

Программа реализует алгоритм закраски многоугольника. Мне необходимо, чтобы алгоритм работал с задержкой для демонстрации работы алгоритма.

Проблема в том, что рисую на Pixmap и вывод изображения происходит после этого кода:

def fill(window):
    pix = QPixmap()
    paint = QPainter()
    paint.begin(window.image)

    """
              Тут сам алгоритм
    """

    pix.convertFromImage(window.image)
    window.scene.addPixmap(pix)

Есть ли какой-то способ для задержки в этом случае?


Ответы (2 шт):

Автор решения: CatProgrammer

Возможно, тебе стоит использовать модуль time и его функцию sleep(). В параметрах указываешь секунды. Код задержки выглядит так:

import time

time.sleep(5)
→ Ссылка
Автор решения: Alexander Chernin
# создаем graphicsPixmap для дальнейшего обновления pixmap на сцене
graphicsPixmap = window.scene.addPixmap(QPixmap())

timer = QTimer()
timer.timeout.connect(drawPixmap)

# Запустить таймер с интервалом 1 сек
timer.start(1000)

# Метод будет вызываться раз в QTimer::interval() (у нас это 1 сек)
# и добавлять штрихи к картинке
def drawPixmap():
    pix = QPixmap()
    paint = QPainter()
    paint.begin(window.image)
    """  
       Тут сам алгоритм промежуточной отрисовки на window.image
    """
    # показать текущие изменения на рисунке
    pix.convertFromImage(window.image)        
    # Обновляем картинку в сцене
    graphicsPixmap.setPixmap(pix)    

→ Ссылка