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

EDI/RAD Python Discussion :

Evénement au clavier


Sujet :

EDI/RAD Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 123
    Par défaut Evénement au clavier
    Bonjour,

    Est-il possible de transformer ces 3 lignes en une seule ( sans faire appel à Key bien entendu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    fenetre.bind_all('x', touche)
    fenetre.bind_all('y', touche)
    fenetre.bind_all('z', touche)
    Merci,
    Vincent

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut
    Salut,

    En deux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for key in ['x','y','z']:
      fenetre.bind_all(key, touche)
     
    ou 
    for key in 'xyz':
      fenetre.bind_all(key, touche)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 123
    Par défaut
    Merci, en effet, c'est une bonne idée. Je pensais qu'il existait une sorte d'expression rationnelle pour écrire ça dans la séquence mais en effet, je n'en avais pas trouvé.
    Merci

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Dans ce style ?

    [fenetre.bind_all(key, touche) for key in 'xyz']

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 123
    Par défaut
    Autre question du même type : mes élèves ont programmé une boule qui se déplace à l'écran à l'aide des flèches (avec Tkinter). Les plus rapides ont voulu en ajouter une autre pilotée avec A, Q, X, C pour le joueur 2, le soucis c'est que tkinter ne gère pas l'appuie sur des touches simultanées, ni même l'évènement "keyup" comme pygame, je voudrai rester pour cette année sur une solution tlkinter. On peut faire ça (facilement) ?

    Merci,
    Vincent

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Du simultané presque pas (Du fait de Tkinter et de Python) mais:
    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
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    def onevent(event):
        print('pass')
     
    root = Tk.Tk()
    root.bind('<Up>'+'<a>', onevent)
    root.bind('<Up>'+'<A>', onevent)
    root.bind('<Up>', onevent)
    root.bind('<A>', onevent)
    root.bind('<a>', onevent)
    root.mainloop()
    Si le code est fluide cela devrais le faire.
    A eux de voir les combinaisons possibles en fait.

    Après c'est du plus lourd au niveau code.

    @+

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 123
    Par défaut
    J'avais essayé quelque chose comme ça :
    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
     
    import random
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    def J1Haut(e):
        print "J1 Haut",random.randint(1,100)
     
    def J2Haut(e):
        print "J2 Haut",random.randint(1,100)
     
    def J12Haut(event):
        print "J1 et J1 vers le  Haut",random.randint(1,100)
     
    root = Tk.Tk()
    root.bind('<Up>'+'<a>', J12Haut)
    root.bind('<Up>'+'<A>', J12Haut)
    root.bind('<Up>', J1Haut)
    root.bind('<A>', J2Haut)
    root.bind('<a>', J2Haut)
    root.mainloop()
    Mais ça ne fonctionne pas : si on laisse la touche du haut enfoncée, on voit que la fonction J1Haut se répète, si on appuie alors sur A, la fonction J12Haut s’exécute une seule fois, et ensuite, seule J2Haut. Enfin si on relâche que le A, il ne se passe plus rien, comme si la touche Haut n'était plus enfoncée.

    Vincent

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

Discussions similaires

  1. Evènements souris clavier
    Par kenzo75 dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 08/03/2013, 01h47
  2. Evénement/ raccourci clavier
    Par pieroznight dans le forum Débuter
    Réponses: 5
    Dernier message: 24/11/2007, 22h48
  3. Evénements clavier et souris !
    Par Franck.H dans le forum SDL
    Réponses: 7
    Dernier message: 19/07/2006, 22h11
  4. Evènement lié au clavier dans une zone de texte
    Par navis84 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/03/2006, 10h12
  5. [Avancé][keyboard] evènements clavier dans le système
    Par thecaptain dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 25/10/2005, 02h35

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