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 :

Garder application TK en avant plan


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut Garder application TK en avant plan
    Bonjour,

    J'ai une petite appli Tk, que je lance à partir de mon environnement de développement PERLIDE sous Windows. Lorsque je clique sur un bouton ma fenetre tk passe sous la fenetre de l'IDE (par contre elle reste devant les autres applis windows).

    Y a t'il un moyen pour garder ma fenetre en avant plan ?
    Merci d'avance

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Faut jouer avec le focus. Regarde notre FAQ.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut Focus
    J'ai testé
    $main->focus et $main->focusForce mais mon appli est tjs derriere l'IDE.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut Avant plan résolu
    J'ai résolu mon problème avec :

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Finalement, ça ne marche pas systématiquement . . .
    C'est pas très clair pour moi.

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Le but de raise est de réafficher un widget après que ce dernier ait été iconifié ou caché. Donc tu ne l'utilises pas dans son vrai rôle.
    Tu dois normalement utiliser les focus. Maintenant, il se peut que l'application qui lance ton perl a de toute façon le focus principal sur tout. Et je vois pas ce que tu peux faire de plus.

    Peux tu nous montrer ton code perl/tk ?

    Pense aussi à consulter notre FAQ Perl/Tk.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Le code est archi basic.

    Voici un exemple :
    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
     
    use Tk ;
     
    sub majMessage {
    print "@_" ;
      my ($rcase1, $rcase2, $rcase3) = @_ ;
      $message = "Case 1 : $$rcase1 | Case 2 : $$rcase2 | Case 3 : $$rcase3\n" ;
      $mw->focusForce ;
    }
     
    $mw = MainWindow->new(-background => 'white') ;
    $mw->focusForce ;
     
    $checkbutton1 = $mw->Checkbutton( -background => 'white', -text => 'Case à cocher 1' ,
                                      -variable => \$case1, -command => [ \&majMessage, \$case1, \$case2, \$case3  ] )->pack ;
    $checkbutton2 = $mw->Checkbutton( -background => 'white', -text => 'Case à cocher 2' ,
                                      -variable => \$case2, -command => [ \&majMessage, \$case1, \$case2, \$case3  ] )->pack ;
    $checkbutton3 = $mw->Checkbutton( -background => 'white', -text => 'Case à cocher 3' ,
                                      -variable => \$case3, -command => [ \&majMessage, \$case1, \$case2, \$case3  ] )->pack ;
     
    $mw->Label(-background => 'white', -textvariable => \$message )->pack ;
     
    MainLoop ;
    La fenetre se met en arrière plan dès que je clique sur une checkbox.
    Je ne suis pas sûr en effet que je puisse faire quelque chose.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Quand à la FAQ je la connais presque par coeur et je dois dire qu'elle m'a bien servi pour apprendre TK.

  9. #9
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par devel360 Voir le message
    Quand à la FAQ je la connais presque par coeur et je dois dire qu'elle m'a bien servi pour apprendre TK.
    Tant mieux alors ! Je l'ai écrite afin d'aider tous ceux qui veulent apprendre Perl/TK ou bien ont besoin d'informations rapidement ou d'astuces diverses. Il ne faut pas hésiter de donner des avis, propositions ou questions que vous souhaiteriez voir dans la FAQ. elle est pour vous.

  10. #10
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use utf8;
     
    my ( $case1, $case2, $case3, $message ) = ();
    my $mw = MainWindow->new( -background => 'white' );
    $mw->focusForce;
     
    my $checkbutton1 = $mw->Checkbutton(
      -background => 'white',
      -text       => 'Case à cocher 1',
      -variable   => \$case1,
      -command    => [ \&majMessage, $mw, \$case1, \$case2, \$case3 ]
    )->pack;
    my $checkbutton2 = $mw->Checkbutton(
      -background => 'white',
      -text       => 'Case à cocher 2',
      -variable   => \$case2,
      -command    => [ \&majMessage, $mw, \$case1, \$case2, \$case3 ]
    )->pack;
    my $checkbutton3 = $mw->Checkbutton(
      -background => 'white',
      -text       => 'Case à cocher 3',
      -variable   => \$case3,
      -command    => [ \&majMessage, $mw, \$case1, \$case2, \$case3 ]
    )->pack;
     
    $mw->Label( -background => 'white', -textvariable => \$message )->pack;
     
    sub majMessage {
      print "@_";
      my ( $mw, $rcase1, $rcase2, $rcase3 ) = @_;
      $message = "Case 1 : $$rcase1 | Case 2 : $$rcase2 | Case 3 : $$rcase3\n";
      $mw->focus;
    }
     
    MainLoop;
    Prends l'habitude de mettre tes procédures en fin de programme et de bien indenter ton code. Utilise aussi les modules strict et warnings.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use strict;
    use warnings;
    J'ai enlevé focusForce dans ta procédure. Sinon moi je n'ai pas ton souci, le programme fonctionne bien chez moi.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Merci !
    pour l'histoire de l'avant plan, J'utilise open perl ide et je suis sous windows.

Discussions similaires

  1. [HTML 4.0] Garder une fenêtre à l'avant plan
    Par Space Cowboy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/01/2012, 13h57
  2. Mettre une application mfc en avant plan
    Par Bourak dans le forum Delphi
    Réponses: 2
    Dernier message: 19/07/2007, 19h21
  3. [WinForms]application en avant plan
    Par thierry007 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/12/2006, 08h48
  4. Mettre en avant plan une autre application...
    Par loupdeau dans le forum MFC
    Réponses: 13
    Dernier message: 19/05/2005, 13h26

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