Using a QTimer to synchronize the end of your movie is not really needed here.
The really simply way to accomplish this is to just have the movie delete the label when it is finished:
connect(movie, SIGNAL(finished()), processLabel, SLOT(deleteLater()));
The QMovie will emit finished()
when it is done. So just wire it to the deleteLater()
slot of your QLabel.
Because this might make you leak the QMovie when the QLabel is deleted, you may want to parent it to the QLabel, as setting it as the movie does not mean the QLabel actually cleans it up.
QLabel *processLabel = new QLabel(this);
QMovie *movie = new QMovie("countdown.gif");
movie->setParent(processLabel);