IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

affichage d'image et de texte


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut affichage d'image et de texte
    Hello,

    Je n'arrive pas à faire afficher une image.

    mon script, liste les dossiers, lorsque que l'on clic (par exemple) sur Titanic.avi alors le résumé s'affiche en dessous et la jacquette du film à coté (il y a pour chaque titre Titanic.avi, Titanic.txt, Titanic.jpg)

    Le problème est que je n'arrive pas à faire afficher l'image... j'ai repèré dans le script par
    ## ICI
    la ou ça pose problème...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/usr/local/bin/perl
     
    use strict;
    use Tk;
    use Tk::DirTree;
    use TK::Photo;
    use TK::JPEG;
     
    my $mw = MainWindow->new(-title=>'OUEP');
    $mw->geometry("1200x1000+60+30");
     
    # INITIALISATION DES VARIABLES
    my ($lst_f, $lst_r, $elem, $retour,$repertoire, $affiche, $objet_affiche);
    my(@files);
     
    # DEFINITION DES CADRE-BOX
    $lst_f = $mw->Scrolled(
      "Listbox",
      -scrollbars => 'e',
      -background => 'white',
      -foreground =>"black",
    )->place( -x => 410, -y => 30, -width => 350, -height => 300, );
     
    $lst_f->bind( "<Button-1>", \&list_select );
     
    $lst_r  = $mw->Scrolled('DirTree',-scrollbars =>'e',-directory=>"C:/Documents and Settings/xxxx/Bureau/tempo/films", ## chemin
                                      -command=>\&repertoire)->place( -x => 30, -y => 30, -width => 350, -height => 300, );
    $lst_r->configure(-background =>"lightblue", -foreground =>"#CC0063", -showhidden=>1) ;
    $lst_r->Subwidget("yscrollbar")->configure(-background => "lightgreen",-troughcolor => "blue") ;
     
    # AFFICHE LE RESUME
    $mw->Label(
      -textvariable => \$retour,
      -justify      => 'left',
      -foreground   => '#CC0063'
    )->place( -x => 100, -y => 370, );
     
    # AFFICHE L'AFFICHE
    $objet_affiche = $mw->Photo( -file => $affiche ); ## ICI
    $mw->Label(                                                    ## ICI
      -image => $objet_affiche,                                ## ICI
    )->place( -x => 780, -y => 30, );                        ## ICI
     
    sub list_select {
      $elem = '';
      $affiche ='';
      my @select = $lst_f->curselection();
      $elem = $lst_f->get( $select[0] );
      $elem =~ /(.*)\.\w{3,4}/;
      $elem = $1;
      $affiche = $elem.".jpg";                                  ## ICI
      $elem .= ".txt";
     
      open IN, "<$elem" or die "$!";
     
      while ( my $line = <IN> ) {
        $retour .= $line;
        }
    }
     
     
    sub repertoire
    {
      my $nd=shift;
      chdir $nd;
      $repertoire=$nd;
      @files=() ;
      $lst_f->delete(0,'end') ;
      my @allfiles=() ;
      opendir DH,$nd ;
      @allfiles=readdir DH ;
      closedir DH ;
      foreach (@allfiles)
      {
        if(-f $_ && $_ !~ /\.(txt|pl|exe|mp3|aac|jpg|gif)/)
        {
          push(@files,$_) ;
          $lst_f->insert('end',$_) ;
        }
      }
    }
     
     
    $mw->Button(
      -text    => 'Quitter',
      -command => sub { $mw->destroy() },
    )->place( -x => 900, -y => 900, );
     
     
    MainLoop;


    Merci pour votre future aide...

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Au moment où perl arrive sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objet_affiche = $mw->Photo( -file => $affiche );
    $affiche est vide, donc forcément, ça ne peut pas fonctionner.

  3. #3
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Je voulais faire ça mais ça n'a pas fonctionné...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objet_affiche = $mw->Photo( -file => \$affiche );

  4. #4
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Ayé !!

    j'ai déplacé dans le SUB et c'est tout bon...

    Merci !

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par PadawanInPerl Voir le message
    Ayé !!

    j'ai déplacé dans le SUB et c'est tout bon...

    Merci !

  6. #6
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut Une dernière hihihi
    Comment fait-on pour vider le label en cours...car quand je clique sur un fichier et que l'image s'affiche et que je change, il reste en dessous l'ancienne image !

    J'ai initialisé les variables mais rien y fait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    sub list_select {
      $elem = '';
      $affiche ='';
      $retour ='';
      $objet_affiche = '';
     
      my @select = $lst_f->curselection();
      $elem = $lst_f->get( $select[0] );
      $elem =~ /(.*)\.\w{3,4}/;
      $elem = $1;
      $affiche = $elem.".jpg";
      $elem .= ".txt";
     
    # AFFICHE L'IMAGE
    $objet_affiche = '';
    $objet_affiche = $mw->Photo( -file => $affiche );
    $mw->Label(
      -image => $objet_affiche,
    )->place( -x => 780, -y => 30, );
     
      open IN, "<$elem" or die "$!";
     
      while ( my $line = <IN> ) {
        $retour .= $line;
        }
    }
    Peux-tu me filer encore un coup de (pouce, bien sûr )

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par PadawanInPerl Voir le message
    Je voulais faire ça mais ça n'a pas fonctionné...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objet_affiche = $mw->Photo( -file => \$affiche );
    Normal, ce n'est pas prévu . Il faut changer ta logique dans le programme.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage d'images selon un nombre fourni dans un fichier texte
    Par grisby007 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/03/2015, 21h20
  2. Affichage de 2 images entourant du texte
    Par BakaOnigiri dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 14/10/2010, 11h20
  3. Problème d'affichage entre image et texte
    Par neoxtra dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 26/01/2009, 13h32
  4. [html] pbs: pour qu'une image suive le texte,affichage d'img
    Par dardadax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/06/2007, 14h14
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo