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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
void FenInfos::traitement_xml()
{
QList<QString> results;
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
QXmlStreamReader reader(reply->readAll());
reader.readNext();
[...]
if(reader.name() == "titre")
{
QString Titre = reader.readElementText();
results.append(Titre); // voilà comment je rajoute dans le QList
}
[...]
//affichage(results); Avant j'allais directement au slot affichage pour afficher les infos mais comme il faut re-telecharger l'image...
image(results);
}
void FenInfos::image(const QList<QString> &infos)
{
// infos[9] j'ai pas encore trouvé comme le mettre dans QUrl si je le mets comme ça ça ne compile pas, ni avec un QString...
QNetworkRequest url_requete(QUrl(infos[9]));
QNetworkAccessManager *manager = new QNetworkAccessManager;
QNetworkReply *reply = manager->get(url_requete);
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(messageErreur(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(finished()), this, SLOT(enregistrement_image(infos)));
}
void FenInfos::enregistrement_image(QList<QString> infos1)
{
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
QFile fichier_temp(QDir::tempPath()+"/"+QString("image_film.jpg"));
fichier_temp.open(QIODevice::WriteOnly);
fichier_temp.write(reply->readAll());
fichier_temp.close();
fichier_temp.deleteLater();
affichage(infos1);
}
void FenInfos::affichage(const QList<QString> &infos2)
{
if(infos.isEmpty())
{
QMessageBox::information(this, "Erreur !", "Aucun film n'a été sélectionné, aucun résumé possible !");
}
deleteLayout(frame_image->layout());
deleteLayout(frame_details->layout());
deleteLayout(frame_synopsis->layout());
frame_image->setFrameShape(QFrame::StyledPanel);
QLabel *label_image = new QLabel(this);
label_image->setPixmap(QPixmap(QDir::tempPath()+"/"+QString("image_film.jpg")));
QVBoxLayout *vbox_image = new QVBoxLayout;
vbox_image->addWidget(label_image);
frame_image->setLayout(vbox_image);
frame_details->setFrameShape(QFrame::StyledPanel);
QLabel *label_titre = new QLabel("Titre : "+infos2[0]);
QLabel *label_date_sortie = new QLabel("Date sortie : "+infos2[1]);
QVBoxLayout *vbox_details = new QVBoxLayout;
vbox_details->addWidget(label_titre);
vbox_details->addWidget(label_date_sortie);
} |
Partager