perl/Tk

perl/Tk - Perl - Programmation

Marsh Posté le 10-05-2004 à 14:32:26    

Salut à tous.
 
Je fais un programme en perl Tk et j'ai un petit probleme au niveau de l'interface graphique.
En effet je desire afficher 2 fenetre. Jusque la pas de soucis.
Mon probleme est que si je ferme ces deux fenetre et que je veut les réouvrir sa plante quand je veut les refermer.
voici ma fonction:  
sub affrapp2
{  
 $nom_du_rapport=$_[0]; #récupération du nom du rapport à afficher
if(!Exists($w_aff))
 {
  $w_aff = $mw->Toplevel();
  $w_aff->title("$nom_du_rapport" );
  $w_aff->Button(-text =>"fermer",-command=>sub{$w_aff->withdraw})->pack(-side => 'bottom',-fill => 'x');
  $texte_aff=$w_aff->Scrolled("Text" )->pack(-side => 'top',-expand => 1,-fill => 'both');
  open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" ) || die "Impossible d'ouvrir $nom_du_rapport\n";
  while(<RAPPORT> )
  {
   $texte_aff->insert('end',$_);
  }
  close(RAPPORT);
 }
 else
 {
  $w_aff2 = $mw->Toplevel();
  $w_aff2->title("$nom_du_rapport" );
  $w_aff2->Button(-text =>"fermer",-command=>sub{$w_aff2->withdraw})->pack(-side => 'bottom',-fill => 'x');
  $texte_aff2=$w_aff2->Scrolled("Text" )->pack(-side => 'top',-expand => 1,-fill => 'both');
  $texte_aff2->insert('end',"w_aff2\n" );
  open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" ) || die "Impossible d'ouvrir $nom_du_rapport\n";
  while(<RAPPORT> )
  {
   $texte_aff2->insert('end',$_);
  }
  close(RAPPORT);
 }
}
quelqu'un a une idée?

Reply

Marsh Posté le 10-05-2004 à 14:32:26   

Reply

Marsh Posté le 10-05-2004 à 23:21:49    

commence par utiliser les balises de code pour ton code, on y voit strictement rien là...


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 10-05-2004 à 23:46:16    

moi je comrpend pas ta question:
"Mon probleme est que si je ferme ces deux fenetre et que je veut les réouvrir sa plante quand je veut les refermer. "
 
tu a essayé d'isoler un peu ton problème?

Reply

Marsh Posté le 11-05-2004 à 11:02:04    

Mon probleme est le suivant:
 
Je suis en train de faire un programme qui a pour but de generr des rapports sur un reseaux via le protocole snmp.
J'ai donc crée une fonction pour afficher les rapports(elle se trouve ne premier message).
Mon programme permet d'effectuer plusieurs mesures et affiche chaque resultat dans une fenetre via cette fonction.
 
Mon problème est que lorsque j'ai fini une mesure (je ferme donc la fenetre) et que je désire relancer une autre mesure j'ai un probleme avec la fernetre qui vien de souvrir (elle ne veut plus se refermer via le bouton fermer).
Moi je pense que c'est un probleme de nom que l'on donne au fenetre.
 
J'espere avoir été plus clair.
 
Merci

Reply

Marsh Posté le 11-05-2004 à 11:19:22    

t'a toujours pas foutu ton code comme du monde sur le forum en touka


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 11-05-2004 à 12:15:42    

sub affrapp2
{  
    $nom_du_rapport=$_[0]; #récupération du nom du rapport à afficher
     
if(!Exists($w_aff))
    {
        $w_aff = $mw->Toplevel();
        $w_aff->title("$nom_du_rapport" );
         
        $w_aff->Button(-text=>"fermer",-command=>sub{$w_aff->withdraw})
        ->pack(-side => 'bottom',-fill => 'x');
        $texte_aff=$w_aff->Scrolled("Text" )
        ->pack(-side => 'top',-expand => 1,-fill => 'both');
 
        open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" )  
 
        while(<RAPPORT> )
        {
            $texte_aff->insert('end',$_);
        }
       
        close(RAPPORT);
    }
    else
    {
       $w_aff2 = $mw->Toplevel();
       $w_aff2->title("$nom_du_rapport" );
       $w_aff2->Button(-text=>"fermer",-command=>sub{$w_aff2->withdraw})
       ->pack(-side => 'bottom',-fill => 'x');
       $texte_aff2=$w_aff2->Scrolled("Text" )
       ->pack(-side => 'top',-expand => 1,-fill => 'both');
       $texte_aff2->insert('end',"w_aff2\n" );
   
       open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" )  
 
       while(<RAPPORT> )
       {
           $texte_aff2->insert('end',$_);
       }
       close(RAPPORT);
    }
}

Reply

Marsh Posté le 11-05-2004 à 13:13:46    

t'a tjrs pas compris
 
t'a des balises C/C++ pour formatter le code sur le forum
 

Code :
  1. comme ici

Reply

Marsh Posté le 11-05-2004 à 13:44:54    

Code :
  1. sub affrapp2
  2.     $nom_du_rapport=$_[0]; #récupération du nom du rapport à afficher
  3.    
  4. if(!Exists($w_aff))
  5.     {
  6.         $w_aff = $mw->Toplevel();
  7.         $w_aff->title("$nom_du_rapport" );
  8.        
  9.         $w_aff->Button(-text=>"fermer",-command=>sub{$w_aff->withdraw})
  10.         ->pack(-side => 'bottom',-fill => 'x');
  11.         $texte_aff=$w_aff->Scrolled("Text" )
  12.         ->pack(-side => 'top',-expand => 1,-fill => 'both');
  13.         open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" ) 
  14.         while(<RAPPORT> )
  15.         {
  16.             $texte_aff->insert('end',$_);
  17.         }
  18.      
  19.         close(RAPPORT);
  20.     }
  21.     else
  22.     {
  23.        $w_aff2 = $mw->Toplevel();
  24.        $w_aff2->title("$nom_du_rapport" );
  25.        $w_aff2->Button(-text=>"fermer",-command=>sub{$w_aff2->withdraw})
  26.        ->pack(-side => 'bottom',-fill => 'x');
  27.        $texte_aff2=$w_aff2->Scrolled("Text" )
  28.        ->pack(-side => 'top',-expand => 1,-fill => 'both');
  29.        $texte_aff2->insert('end',"w_aff2\n" );
  30.  
  31.        open (RAPPORT,$chemin_rapport_lecture."$nom_du_rapport" ) 
  32.        while(<RAPPORT> )
  33.        {
  34.            $texte_aff2->insert('end',$_);
  35.        }
  36.        close(RAPPORT);
  37.     }
  38. }

Reply

Marsh Posté le 11-05-2004 à 14:41:48    

donc en gros ton probleme c'est du pure Tk et ca n'a rien à voir avec snmp ou tes histoires de rapport?
 
t'as essayé de voir si ca merdait aussi sans les rapports?
Kand t'as un bug comme ca il faut essayer d'isoler le probleme, en enlevant et en remetant des trucs pour voir ce qui fait foirer! Comment veux tu k'on te dise d'ou vient ton erreur en lisant plein de codes qui font pleins de truc qui n'ont certainement rien à voir avec ton bug??
 
alors isole ton probleme, et si tu n'a pas réussi à le resoudre à ce moment la et ben pose la question (ou soumet directement un bug report à l'equipê de Perl/Tk si c'est un bug de Tk), mais la on pas installer tes modules et faire le debuggage à ta place!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed