Also, you cannot just set the images in a busy loop. You have to let the application process its events to let the label receive update events. You could change images with help of QTimer (or alternatively you can call QCoreApplication::processEvents() during every loop iteration which is a bit uglier approach).