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 :

Methode Entry avec Perl/Tk


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Par défaut Methode Entry avec Perl/Tk
    Bonjour à tous

    Voilà j'ai un petit soucis, je crée une zone de saisi avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $fenetre -> Entry('-textvariable'   =>   \$var);
    puis un bouton "envoi" qui lance une fonction envoi() qui traite $var :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $bouton1 = $fenetre -> Button (
                        '-text'   =>   'Envoyer',
                        '-command'   =>  [\&envoi]
                        );
    Jusque là pas de problème, mais je voudrais que l'appuie sur la touche "entrée" dans la zone de saisie fasse pareil que l'appuie sur le bouton, c'est à dire lance la fonction envoi().

    D'après mes recherches il semble que ce soit un job pour bind, mais je n'y arrive pas!!

    Si quelqu'un a une idée.

    Merci

  2. #2
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    J'aurais essayé ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bouton1->bind('<Control-Keypress-Enter>', \&envoi) ;
    Non ?

    Qu'as tu essayé, avec bind ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Par défaut
    Citation Envoyé par 2Eurocents
    J'aurais essayé ça ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bouton1->bind('<Control-Keypress-Enter>', \&envoi) ;
    Il me renvoie une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bad event type or keysym "Keypress" at ./wharftk.pl line 48.
    C'est un probleme avec le "Control-Keypress-Enter", il me semble déjà que "Control" c'est pour la touche CTRL enfoncée et que "Keypress" c'est plutôt "KeyPress" mais cela ne change rien. Je voulais justement un truc comme ça "KeyPress-Enter" mais ça ne marche pas et je ne trouve pas de doc. Peut-être avec le code ascii de la touche entrée (c'est 13 il me semble) ?

    Merci pour ta réponse.
    C'est en cherchant qu'on trouve !!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Par défaut
    En fait le <Enter> dans bind est reservé à la souris lorsqu'elle passe sur le widget, ce n'est donc pas une bonne piste !!!

    Je cherche, c'est étrange, cela devrait être un problème classique et je n'en trouve trace nul part

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 46
    Par défaut
    Bon bin, désolé pour le dérangement, en fait c'est tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $reponse -> bind ('<Return>'  , \&envoi);
    Trouvé dans la man Tk::event !!!!

    Merci quand même de ta réponse, toujours très rapide (d'ailleurs tu as un autre métier que modérateur ?

  6. #6
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Tu as raison, le 'Control', c'est pour la touche du même nom ... c'est un modificateur de l'action.

    Et le code pour la touche entrée, c'est Return ...

    Il suffit donc de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bouton1->bind('<KeyPress-Return>', \&envoi) ;
    (avec un P majuscule à KeyPress )


    [Edit]Posté avant d'avoir vu que tu avais trouvé ...

    N'oublie pas le tag [résolu], avec le bouton du même nom, en bas à gauche de l'interface.

    Et j'ai un métier, effectivement
    Mais le métier, c'est dans la semaine [/Edit]

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

Discussions similaires

  1. [web] Présentation avec Perl/Tk
    Par Stephan COMBES dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 01/06/2004, 21h45
  2. update avec Perl
    Par mimilou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/05/2004, 16h22
  3. Connexion avec Perl
    Par BARBIER dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 14h05
  4. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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