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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
#include "qtgestxavmedias.h"
#include <QtGui> // pour inclure tout les composants
// (ralenti l'application, on peut declarer les composants utilisés un par un)
QtGestXavMedias::QtGestXavMedias(QWidget *parent)
: QWidget(parent)
{
MyAppDirPath = QCoreApplication::applicationDirPath();
FicheFilmAleatoire();
QObject::connect(GManu, SIGNAL(clicked()), qApp, SLOT(PrecedantCode()));
QObject::connect(DManu, SIGNAL(clicked()), qApp, SLOT(SuivantCode()));
}
void QtGestXavMedias::Design()
{
tab = new QTabWidget(); // widget (composant) classeur que l'on va installer dans la fenetre
grid = new QGridLayout; // widget grille pour disposer les differents composants
grid2 = new QGridLayout; // widget grille pour disposer les differents composants
layout = new QHBoxLayout; // l'interieur de la fenetre
layout->addWidget(tab); // on installe le classeur a l'interieur de la fenetre
onglet0 = new QWidget(); // ce classeur a un onglet 0
onglet1 = new QWidget(); // et un onglet 1
onglet0->setLayout(grid); // dans l'onglet 0 on installe le composant grille pour placer les differents widgets
onglet1->setLayout(grid2); // dans l'onglet 0 on installe le composant grille pour placer les differents widgets
tab->addTab(onglet0, tr("&FicheFilms")); // on donne un titre a l'onglet tr() pour traduction futur
tab->addTab(onglet1, tr("&Moviecovers")); // on donne un titre a l'onglet tr() pour traduction futur
Image = new QLabel; // on va mettre une image ds un Qlabel
grid->addWidget(Image, 0, 0, 7, 3); //position dans la grille 0,0 (tout en haut a gauche) 7 lignes en hauteur, 3 colonnes en largeur
grid->addWidget(Titre, 0, 3, 1, 9); // position dans la grille 0,3 (en haut,3 colonnes vers la droite) 1 ligne en hauteur, 9 colonnes en largeur
Infos = new QLabel("Infos"); // on ecrit Infos dans une etiquette (tr(): pour la traduction)
Infos->setFont(QFont("Lucida Handwriting", 18,QFont::Black)); // Gestion de la police de caractere
grid->addWidget(Infos,1, 3, 1, 9); // Placement ds la grille (voir plus haut)
FilmDe = new QLabel(tr("Un Film de :"));// on ecrit Un Film de : dans une etiquette (tr(): pour la traduction)
grid->addWidget(FilmDe,2, 3, 1, 9); // Placement ds la grille (voir plus haut)
grid->addWidget(Realisateur, 3, 3, 1, 9);
Avec = new QLabel(tr("Avec :"));
grid->addWidget(Avec,4, 3, 1, 9);
grid->addWidget(Acteur, 5, 3, 1, 9);
grid->addWidget(Resume, 6, 3, 3, 9);
Annee = new QLabel(tr("Année :"));
grid->addWidget(Annee,7, 0, 1, 1);
grid->addWidget(EAnnee, 8, 0, 1, 1);
Pays = new QLabel(tr("Pays :"));
grid->addWidget(Pays,7, 1, 1, 1);
grid->addWidget(EPays, 8, 1, 1, 2);
Genre = new QLabel(tr("Genre :"));
grid->addWidget(Genre,9, 0, 1, 1);
grid->addWidget(EGenre, 10, 0, 1, 2);
Duree = new QLabel(tr("Durée :"));
grid->addWidget(Duree,9, 2, 1, 1);
grid->addWidget(EDuree, 10, 2, 1, 1);
GAuto = new QPushButton("<-"); // mise en place d'un bouton
grid->addWidget(GAuto,10, 3, 1, 1);
GAuto->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
GManu = new QPushButton("<-"); // mise en place d'un bouton
GManu->setToolTip("Precedant");
grid->addWidget(GManu,11, 3, 1, 1);
GManu->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Stop = new QPushButton(tr("Stop"));
grid->addWidget(Stop,10, 4, 1, 1);
Stop->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
DAuto = new QPushButton("->");
grid->addWidget(DAuto,10, 5, 1, 1);
DAuto->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
DAuto->setIcon(QIcon(":/Ressources/R2D2.ico")); // met l'icone r2d2 sur le bouton
DManu = new QPushButton("->");
DManu->setToolTip("Suivant");
grid->addWidget(DManu,11, 5, 1, 1);
DManu->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Regarder = new QPushButton(tr("Regarder"));
grid->addWidget(Regarder,10, 6, 1, 1);
Regarder->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Changer = new QPushButton(tr("Changer"));
grid->addWidget(Changer,10, 7, 1, 1);
Changer->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Rechercher = new QPushButton(tr("Rechercher"));
grid->addWidget(Rechercher,10, 8, 1, 1);
Rechercher->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Ecouter = new QPushButton(tr("Ecouter Resumé"));
grid->addWidget(Ecouter,10, 9, 1, 2);
Ecouter->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Renseignements = new QPushButton(tr("Renseignements"));
grid->addWidget(Renseignements,10, 11, 1, 1);
Renseignements->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
FilmsDe = new QPushButton(tr("Films de :"));
grid->addWidget(FilmsDe,11, 6, 1, 1);
FilmsDe->setCursor(Qt::PointingHandCursor); // une main s'affiche quand la sourie pointe le bouton
Xavier = new QComboBox;
Xavier->addItem("Xavier");
grid->addWidget(Xavier,11, 7, 1, 2);
Filtrer = new QLabel(tr("Filtrer :"));
grid->addWidget(Filtrer,11, 9, 1, 1);
SGenre = new QComboBox;
grid->addWidget(SGenre,11, 10, 1, 2);
setLayout(layout); // pour afficher tout ci-dessus?
}
void QtGestXavMedias::AfficheFicheFilm()
{
originalPixmap = QPixmap (CheminFicheFilmAleatoireJpg);
filename = CheminFicheFilmAleatoireFilm;
QFile fichier(filename);
fichier.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream flux(&fichier);
titre1 = flux.readLine();
realisateur1 = flux.readLine();
annee1 = flux.readLine();
pays1 = flux.readLine();
genre1 = flux.readLine();
duree1 = flux.readLine();
acteurs1 = flux.readLine();
resume1 = flux.readLine();
distrib1 = flux.readLine();
comment1 = flux.readLine();
titreorig1 = flux.readLine();
Titre = new QPlainTextEdit(titre1);
Realisateur = new QTextEdit(realisateur1);
Acteur = new QTextEdit(acteurs1);
Resume = new QTextEdit(resume1);
EAnnee = new QLineEdit(annee1);
EPays = new QTextEdit(pays1);
EGenre = new QTextEdit(genre1);
EDuree = new QLineEdit(duree1);
Design();
}
void QtGestXavMedias::FicheFilmAleatoire()
{
listFilter << "*.film";
QDirIterator dirIterator((MyAppDirPath + "/Xavier"), listFilter ,QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories);
// On déclare un QDirIterator dans lequel on indique que l'on souhaite parcourir un répertoire et ses sous-répertoires.
// De plus, on spécifie le filtre qui nous permettra de récupérer uniquement les fichiers du type souhaité.
while(dirIterator.hasNext()) // Tant qu'on n'est pas arrivé à la fin de l'arborescence...
{
dirIterator.next();
fileList << dirIterator.fileName();
}
fileList.replaceInStrings(".film",""); // on supprime l'extension .film
NombreFilms = fileList.count(); // on compte le nombre de fichiers extrait
qsrand( QDateTime::currentDateTime().toTime_t() );
nbAlea = (qrand() % NombreFilms);
NomFicheFilm = fileList.at(nbAlea);
CheminFicheFilmAleatoireFilm = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Film");
CheminFicheFilmAleatoireJpg = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Jpg");
NumFiche = nbAlea;
AfficheFicheFilm();
}
void QtGestXavMedias::PrecedantCode()
{
if (NumFiche>0)
{
NumFiche= NumFiche-1;
NomFicheFilm = fileList.at(NumFiche);
CheminFicheFilmAleatoireFilm = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Film");
CheminFicheFilmAleatoireJpg = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Jpg");
}
AfficheFicheFilm();
}
void QtGestXavMedias::SuivantCode()
{
if (NumFiche<NombreFilms)
{
NumFiche= NumFiche+1;
NomFicheFilm = fileList.at(NumFiche);
CheminFicheFilmAleatoireFilm = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Film");
CheminFicheFilmAleatoireJpg = (MyAppDirPath + "/Xavier/" + NomFicheFilm + ".Jpg");
}
AfficheFicheFilm();
}
void QtGestXavMedias::resizeEvent(QResizeEvent * /* event */) //sous programme dimension image en fonction de QLabel
{
QSize scaledSize = originalPixmap.size();
scaledSize.scale(Image->size(), Qt::KeepAspectRatio);
if (!Image->pixmap()
|| scaledSize != Image->pixmap()->size())
updateImage();
}
void QtGestXavMedias::updateImage() // sous prog appelé ci-dessus
{
Image->setPixmap(originalPixmap.scaled(Image->size(),
Qt::KeepAspectRatio,
Qt::SmoothTransformation));
// en gardant les proportions, redimensionner l'image pour les dimensions du label
} |
Partager