Я думаю, что вы не можете приостановить paintEvent и одновременно обновить экран.
Чтобы сделать то, что вы хотите, возможный способ - создать метод, который вызывает paintEvent, передавая номер прямоугольника для рисования и затем делая паузу.
Вероятно, лучший способ - использовать QTimer с таким кодом (псевдокод):
timer = QTimer()
connect(timer, SIGNAL(timeout()), this, SLOT(update()))
timer.start(1000)
Слот update()
рассчитывает количество прямоугольников для рисования и рисует их. Когда все прямоугольники нарисованы, просто вызовите метод timer.stop()
, чтобы остановить таймер.