Forum Programmation.python Front end ou pas ?

Posté par  .
Étiquettes : aucune
0
2
nov.
2004
Voila , voila ...
pour répondre à mon envie de reprendre la programmation (qui fut brutalement interrompu en 5eme en pleine découverte du qbasic.exe présent sur e CD-rom de win95 ) j'ai décidé de m'atteler à la tache python , et tout comme Linus avait la prétention de créer un kernel en apprennant le C , j'ai la prétention d'ecrire un petit taggueur/indexeur de fichiers multimedias ( oui , je sait que ca existe deja ) en apprennant Python.

Je pense que mon programme se contenteras au debut d'ouvrir un fichier à la fois , de donner les infos et de les remplacer par celles que l'utilisateur entreras.
Mais le but ultime de jeu est bien evidemment que tout cela se fasse en graphique ( gtk , qt , tk ? ).
Et la une question se pose , je programme certes pour moi-meme dans ce cas précis , mais sait-ton jamais , il pourrait etre utile à d'autres , et l'autre pourrait tres bien etre un amoureux de la ligne de commande .
Vaut-il mieux que j'attaque la création d'une interface graphique des que je le peux , et que je fasse en paralelle une version en mode texte de mon script , ou est-ce préférable de laisser mon programme de base ( celui qui se contente de lire , d'ecrire et de lister sans ergonomie) en mode texte , et finalement faire une interface graphique qui l'appellera sans cesse des qu'une modification est à faire dans un fichier ?

Notez que je suis rempli de bonne volonté mais point encore de connaissances pointues , mais vous vous ferez un plaisir de me dire pourquoi l'une ou l'autre des solutions est la meilleure :-)
  • # Comment je ferais

    Posté par  . Évalué à 2.

    En python, on peut programmer objet, je vais parler objet...

    En gros, une classe pour manipuler les fichiers. Ensuite, une classe qui sert d'interface (en PyQt ou PyGtk), puis une d'interface texte..
    La fonction principale instanciera un objet d'interface en fonction d'arguments sur la ligne de commande, et ça roulera !
    • [^] # Re: Comment je ferais

      Posté par  . Évalué à 1.

      J'ai pour le moment un peu de mal à saisir le principe de l'objet , et j'ai du mal à bien saisir ce que ca apporte de plus à python par rapport à mon vieux basic , enfin , pour le moment .
      En gros je scinde mon programme en deux:
      Une couche basse qui se contente de manipuler abruptement les fichiers , et qui transmet les résultat de son labeur via des variables ( par exemple ) , et une couche haute qui montre tout ca à l'utilisateur.

      J'ai compris ?
      • [^] # Re: Comment je ferais

        Posté par  . Évalué à 2.

        Ouaip

        En gros, pour faire simple (pitié les puristes, pas taper ! :p
        un objet tu peux voir ça comme un assemblage de variables et de fonctions.
        Genre tu définis un objet mp3_file
        => variable filename, un dico python pour stocker les tags (nommé tags)...
        => constructeur : prend un argument file
        => fonctions : play(), save_tags(), refresh_tags()
        Ensuite à l'utilisation :
        un_mp3 = mp3_file("/musique/test.mp3")
        print "Les tags du mp3 :"
        for tag_name in un_mp3.tags.keys():
          print tag_name, " => ", un_mp3.tags[tag_name]
        print "Lecture du mp3..."
        un_mp3.play()


        C'est plus clair maintenant?
        • [^] # Re: Comment je ferais

          Posté par  . Évalué à 1.

          C'est à peu pres ce que je pensais , tu me le confirmes.
          Donc en gros j'aurais plusieurs objets et chacun aura son role :

          -(eventuellement definir si le fichier est un mp3 taggué en id3v1 , v2 , etc , ou un ogg ou un flac)
          -lire les tag ( ou mettre le nom du fichier en mémoire )
          -transmettre les tags à l'interface graphique
          -lire ce que veut l'utilisateur
          -ecrire les tags ( ou modifier le nom du fichier en consequence )
          -et enfin verifier que ca s'est bien passé.

          et tout cela communiqueras en mettant les infos utiles dans des variables à valeurs multiples ( le dicos dont tu parles )

          En gros un objet est une fonction complexe ( lire de tel octet à tel octet , puis mettre le contenu dans telle case de telle tableau en indiquant que ca c est le titre , ca l'artiste et ca l'année ) que l'on utilise , appelle de facon simple comme liremp3 (nom_du_fichier_à_lire).
          oui ?
          • [^] # Re: Comment je ferais

            Posté par  . Évalué à 2.

            Tu n'as pas encore tout saisi...
            -(eventuellement definir si le fichier est un mp3 taggué en id3v1 , v2 , etc , ou un ogg ou un flac)
            -lire les tag ( ou mettre le nom du fichier en mémoire )
            -transmettre les tags à l'interface graphique
            -lire ce que veut l'utilisateur
            -ecrire les tags ( ou modifier le nom du fichier en consequence )
            -et enfin verifier que ca s'est bien passé.

            => 1 objet mp3_file + 1 objet ogg_file + 1 objet par type de fichier quoi + 1 objet par interface dispo.
            Regarde ce lien (c'est cadeau, bonheur pour toi :p) : http://pinaraf.robertlan.eu.org/demo_python.py(...)


            En gros, un objet c'est un ensemble de variables, de fonctions... Les objets ont plusieurs propriétés, l'héritage notamment.
            Exemple :
            On définit une classe vehicule (une classe, c'est le "schéma" d'un objet), qui a la fonction avancer, reculer, tourner, les variables vitesse, position.
            On définit une classe voiture qui hérite de vehicule, avec les variables moteur (sachant que moteur sera un objet à part pour pouvoir faire ma_bagnole.moteur.allumer() par exemple), roues, modèle, les fonctions allumer_essuieglaces, eteindre_essuieglaces.
            Ensuite, une classe velo qui hérite de vehicule, puis camion, puis........


            Bref, la programmation orientée objet fournit une solution très simple à la représentation de la réalité dans un langage de programmation
            • [^] # Re: Comment je ferais

              Posté par  . Évalué à 1.

              Je vais étudier ca , merci.
              ( rtfm , je m'en doutais hein :-) , mais il y a des choses qu'on n'apprends pas dans les livres justement , c'est ca qui est bon avec un etre humain)
            • [^] # Re: Comment je ferais

              Posté par  . Évalué à 1.

              'Scuse moi d'etre insistant , mais commen je décide que mon programme va s'executer en mode texte , avec gtk , QT ou encore Tk ?
  • # Petit conseil pour python

    Posté par  . Évalué à 1.

    Pour apprendre python je te conseille ce livre en ligne :
    http://fr.diveintopython.org/toc.html(...)

    de plus dans les exemples, il t'explique comment faire pour ouvrir les fichiers multimedias, les tagguer... bonne lecture
  • # Bon courage

    Posté par  (site Web personnel) . Évalué à 1.

    Ton histoire pourrait être la mienne ...

    Aprés moult essais, je suis (definitivement ?) passé à Gtk avec Glade.
    Je ne peux que te recommander de le tester.

    J'ai commencé en mai de cette année, sans base particuliére, et malgré
    mes etourderies et mon manque de temps (et de connaissances),
    ça commence à ressembler à quelque chose.

    Ps: il est possible de suivre ton dev quelque part ?
    • [^] # Re: Bon courage

      Posté par  . Évalué à 2.

      MMhh , oui bien sur : ici
      Le nom : Froggie
      Free French audiO Goth & Indus Indexing & tagging utilitIE
      L'utilistaire francais et libre d'indexage et de taguage de fichiers audios goth et industriels , je suis désolé , j'ai guere réussi à trouver plus naze.

      La licence : GPL

      Le graphiste : y'en a pas
      Le site : y en a pas
      Le CVS : je l'ai mangé

      En gros je n'en suis qu'a me poser les questions pré-conception.
      Mais des que ca prend forme ( enfin , des que le script arrive à etre lancé hein ) , je te tient au courant , si tu es pressé :
      thy point nae at free point fr
      • [^] # Re: Bon courage

        Posté par  (site Web personnel) . Évalué à 2.

        Mais des que ca prend forme ( enfin , des que le script arrive à etre lancé hein ) , je te tient au courant

        Ok , et bien quand tu auras commencé, je jetterais un oeil sur ton code.

        PS: Si tu veux un petit exemple Python/Gtk clique sur page perso

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.