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 :

afficher une mainwindow definie a partir dans un module


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut afficher une mainwindow definie a partir dans un module
    Bonjour,

    Dans un programme perl test1.pl j'appelle une fonction : promptWindowCompare definie dans un module module1.pm

    La fonction promptWindowCompare definit une fenetre graphique.
    Mon probleme est que cette fenetre graphique n'apparait pas lorsque j'execute test1.pl

    Je voudrais mettre la definition de cette fenetre promptWindowCompare dans le module car je la reutilise dans d'autres script perl

    Merci pour votre aide.

    Dans test1.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $compareall = promptWindowCompare($sublf,$pgm);
    Dans module1.pm
    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
     
    sub promptWindowCompare {
     
      my $subfile = shift;
      my $pgm = shift;
      my $text1 = "Export All Limits \n for limits.csv and all sublimits file(s)";
      my $text2 = "Export Production screened parameters only \n for limits.csv and all sublimits file(s)";
      if ($subfile eq "0")
      {
        $WindowComp = MainWindow->new( -title => 'Compare treatment for pgm '.$pgm.'');
      }else
      {
        $WindowComp = MainWindow->new( -title => 'Compare treatment for pgm-subfile '.$pgm.'-'.$subfile.'');
      }
      $WindowComp->minsize('800','50');
      $WindowComp->geometry('+100+300');
     
      my $FrameComp = $WindowComp->Frame()->pack(-side=>'top');
     
      ## BUTTONS
      my $ButtonCompAll  = $FrameComp->Button(-text=> $text1,
                                              -command=> \&DoCompareAll)
                                              ->pack(-side=>'left',-padx=>10);				 
     
      my $ButtonCompProd = $FrameComp->Button(-text=> $text2,
                                              -command=> \&DoCompareProd)
    	   			          ->pack( qw/ -padx 20 -pady 30 / );
      MainLoop;
      return $compareall;
    }

  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
    Bonjour,

    Dans ton script test1.pl ou tout autre .pl où tu souhaiterais appeler ton .pm, y a t il du Tk à l'intérieur ? Je veux dire par là, sont ils des programmes affichant une interface graphique ?

    Si oui, dans ce cas, tu pourrais passer à ta procédure promptWindowCompare un argument en plus correspondant à ton widget parent ($mw) afin de l'utiliser pour créer un Toplevel.

    Si non, voici un exemple fonctionnant.

    test.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/perl
    use strict;
    use warnings;
    use TOTO;
     
    my $compareall = promptWindowCompare(0, 'ludo100');
    TOTO.pm
    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
    use warnings;    # Avertissement des messages d'erreurs
    use strict;      # Verification des déclarations
    use Carp;        # Utile pour émettre certains avertissements
     
    use Tk;
     
    sub promptWindowCompare {
     
      my $subfile = shift;
      my $pgm     = shift;
      my $text1   = "Export All Limits \n for limits.csv and all sublimits file(s)";
      my $text2   = "Export Production screened parameters only \n for limits.csv and all sublimits file(s)";
     
      my $titre;
      if ( $subfile == 0 ) {
        $titre = "Compare treatment for pgm $pgm"; 
      }
      else {
         $titre = "Compare treatment for pgm-subfile $pgm" . "-$subfile";
      }
     
      my $WindowComp = MainWindow->new( -title => $titre );
      $WindowComp->minsize( '800', '50' );
      $WindowComp->geometry('+100+300');
     
      my $FrameComp = $WindowComp->Frame()->pack( -side => 'top' );
     
      ## BUTTONS
      my $ButtonCompAll = $FrameComp->Button(
        -text    => $text1,
        -command => \&DoCompareAll
      )->pack( -side => 'left', -padx => 10 );
     
      my $ButtonCompProd = $FrameComp->Button(
        -text    => $text2,
        -command => \&DoCompareProd
      )->pack(qw/ -padx 20 -pady 30 /);
     
      MainLoop;
     
      return 'TUTU';
    }
     
    1;

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut
    Bonjour,
    Merci d'avoir repondu a mon pb.
    En fait je n'avais pas mis le use Tk dans mon module mais dans mon script perl
    voila pourquoi ca ne fonctionnait pas comme dans ton exemple.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2006, 18h49
  2. [VB6] Afficher une image de bonne qualité dans un form
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/05/2006, 12h23
  3. Réponses: 2
    Dernier message: 07/02/2006, 19h44
  4. Afficher une form ou un cadre dans un panel
    Par miniil dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2005, 00h54
  5. Afficher une dropdownlist lors de modif dans une DataGrid
    Par MiJack dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h42

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