métas
Bon alors reprenez le code source que vous avez écrit lors du dernier article ( enfin le jour où j'aurais un visiteur, qui lit mes articles, en entier, et qui s'en sert ...) ou allez-le prendre ici .
On va commencer par les métas.
Dans le __init__ , rendez-vous dans 10 ans même jour, même heure, section "lecteur".
Rajoutez :
self.connect(self.monControleur, SIGNAL("metaDataChanged()"),self.meta)
Quand un signal metaDataChanged(), appartenant à self.monControleur, est détecté, on appelle self.meta() , dont voici le code:
def meta(self):
info = self.monControleur.metaData()
try:
self.artiste.setText( info[QString('ARTIST')][0] )
except:
self.artiste.setText("Inconnu")
try:
self.titre.setText( info[QString('TITLE')][0] )
except:
self.titre.setText("Iconnu")
Rien de bien compliqué,
metaData() retourne un dictionnaire contenant les métadonnées du mp3.
les données dans info sont des QStrings, et les valeurs sont des listes.
C'est pourquoi, dans setText , on formate notre chaine en QString ,et on prend le premier élément et unique de la liste.
Et voilà, c'est la fin.
Mais non, avant de vous quitter, on va d'abord faire un "ouvrir fichier..." .
Dans le __init__:
faites de self.maListe une liste vide .
créer une section "menu" et ajoutez- ceci :
##### menu #####
menu = self.menuBar().addMenu("&Menu")#on crée le menu
iimporter = QAction("&Importer musique(s)",self)
importer.setShortcut("Ctrl+O")
importer.setIcon( QIcon( CHEMIN + 'Images/import.png' ) )
menu.addAction(importer)
self.connect(importer, SIGNAL("triggered()"), self.ouvrir)
##### fin menu #####
Alors,
menu appelle la barre de menu de notre fenêtre et ajoute "Menu" comme menu .
importer sera une QAction, on lui donne un raccourci et une icône .
On ajoute importer à notre menu .
Enfin on connecte le déclenchement( clic ou raccourci) de importer à self.ouvrir() .
Et si, on devenait le rêve d'un monde qui nait ou on codait ouvrir() ?
ouvrir() va lancer une fenêtre d'import de fichiers, puis une fois sélectionnées, les ajoutera dans self.maListe :
def ouvrir(self):
ajout = QFileDialog(self,"Musique! et que chacun se mette ...",CHEMIN,"Musique(*.mp3 *.ogg)")
ajout.setFileMode(QFileDialog.ExistingFiles)
if (ajout.exec_()):
musiques = ajout.selectedFiles()
for chemin in musiques :
self.maListe.append( str( chemin.toLatin1() ) )
Alors,
ajout sera la fenêtre d'import de fichiers, son titre sera "Musique ! ...", elle s'ouvrira, par défaut dans le dossier CHEMIN, et on accepte seulement des mp3 et ogg .
ajout permettra la sélection de plusieurs fichiers .
si on a importer des chansons alors :
musique va contenir les chemins vers ces chansons.
et on ajoute chaque chemin dans maListe en prenant soin de le formater en Latin1 (pour les accents) .
Voilà, on a terminé notre lecteur. Les sources c'est par là .
Gardez les sources, on en aura besoin dans le prochain article .