Bonjour,
Comme dit dans le titre, j'ai besoin de delayer une boucle for (ou d'utiliser un système du même genre). Je vous explique tout:
J'ai réalisé un QThread (car opération longue) dans lequel je récupère des chemins de fichiers vidéos à partir d'un dossier. Puis dans une boucle for, je demande de récupérer les informations du films sur internet (qnetworkmanager + signal et slot) depuis la boucle for. Sauf que voila ce qui se passe:
-Premier passage dans la boucle
-Récupération du nom du film depuis le chemin du fichier
-Récupération des données sur internet (étape 1 sur 6)
-Deuxième passage dans la boucle (donc la récupération des données du premier film est interrompue). Et c'est pareil pour tous donc je récupère rien

Voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "moviethread.h"
#include "generalfunctions.h"
#include "cpp.panneauConfiguration/Parametres.h"
#include "cpp.infos/Bdd.h"
 
MovieThread::MovieThread(QObject *parent):QThread(parent)
{
}
 
void MovieThread::run()
{
    bdd *db = new bdd;
qDebug()<<"DEBUT DU THREAD";
    Parametres *settings = new Parametres;
 
    for(int j=0; j<settings->listeDossiersFilms.size();j++)
    {
        QStringList list = GeneralFunctions::listFiles(settings->listeDossiersFilms[j], true); //Liste les fichiers films
        for (int i=0; i<list.size();i++)
        {
            Movie *movie = new Movie;
            movie->md5 = GeneralFunctions::hashMD5(list[i]);
            movie->path = list[i];
            movie->title = QFileInfo(list[i]).baseName();
            movie->getInfos(); //Récupération des données sur internet
            db->addMovie(movie); //on ajoute le film dans la base de données
        }
    }
}
 
MovieThread::~MovieThread()
{
}
Cordialement