Les fonctions dans les fonctions, comment faire ça proprement ?
Bonjour,
Je suis en train de réaliser une fonction pour récupérer le code source d'une page internet et j'utilise donc la méthode connect() pour s'assurer que la page a fini de charger avant de passer à la suite du code. Ce que j'aimerai faire, c'est écrire du code à la suite de la méthode connect (en gros mettre le code de la méthode connect à la suite) car j'aimerai renvoyer une QVariantList. Sauf que je ne voit pas ce que le slot pourrait renvoyer d'autre que void. Voila, j'espère avoir été assez clair.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| QVariantList TheMovieDB::search(const QString &title)
{
api_mode="search/movie";
api_queries="&fr&query=" + title;
api_query=api_url+api_mode+api_key+api_queries;
view->load(QUrl(api_query));
QObject::connect(view, SIGNAL(loadFinished(bool)), this, SLOT(resultSearch(bool))); // là je peux rien mettre à la suite car il faut attendre que la page ait chargé
}
void TheMovieDB::resultSearch(bool)
{
QString plainText = view->page()->currentFrame()->toPlainText();
QJsonDocument document = QJsonDocument::fromJson(plainText.toUtf8());
QJsonObject jsonObj = document.object();
QJsonArray obj = jsonObj["results"].toArray();
for(int i = 0; i < obj.count(); i++){ //il faudrait que le contenu de cette boucle soit renvoyé par la méthode search
qDebug()<< obj[i].toObject()["title"].toString();
qDebug()<< obj[i].toObject()["id"].toInt();
qDebug()<< obj[i].toObject()["release_date"].toString();
}
} |
Merci pour votre aide.
Cordialement