Опитвам се да покажа последователност от изображения чрез Qlabel, използвайки setPixmap. Имам QStringList, съдържащ имената на файловете с изображения и for цикъл, който итерира през изображенията с 5 секунди изчакване след всяко изображение. Въпреки това само последният файл с изображение се показва. В момента екранът остава празен по време на изчакване на първите итерации, докато най-накрая се покаже последното изображение. Четох, че използването на for цикъл няма да работи и че вместо това трябва да използвам сигнали и слотове. Все пак съм нов в тази концепция и наистина бих се радвал на пример, който да ме насочи в правилната посока.
Ето текущия ми код:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow){
ui->setupUi(this);
QStringList images;
QString imageName;
images << "redScreen.png" << "blueScreen.png" << "greenScreen.png";
for(int x=0; x < images.size(); x++){
imageName = images.at(x);
this->displayScreen(imageName, 5);
}
}
void MainWindow::displayScreen(QString imageName, int wait){
QTimer t;
QEventLoop loop;
QPixmap myImage;
myImage.load(":/images/" + imageName);
ui->imageLabel->setPixmap(myImage);
ui->imageLabel->repaint();
// 5 second wait between next iteration
t.start(wait*1000);
connect(&t, SIGNAL(timeout()), &loop, SLOT(quit()));
loop.exec();
}