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

Tkinter Python Discussion :

Remplacer un appui touche par un autre


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut Remplacer un appui touche par un autre
    Salut,

    J'ai un petit problème récurent, je ne sais pas exploiter les évènements clavier, et ce n'est pas faute d'avoir potassé les docs. En l'occurrence, quand on presse la touche return, j'aimerai bien qu'on aille au champ suivant, donc remplacer l'évènement 'touche return appuyée" par "touche tablulation appuyée". Si quelqu'un sait, je pense que ça me servira de déclic pour toute cette partie des évènements qui me semble obscure.

    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
    from Tkinter import *
     
    class myEntry(Entry):
        def __init__(self, container, **kwds):
            Entry.__init__(self, container, **kwds)
            self.bind("<Key-Return>", self.returnPressed)
     
        def returnPressed(self, event):
            print "return pressed"
            # TODO: here tabulation
     
    root = Tk()
     
    for counter in range(20):
        temp_var = StringVar()
        temp_var.set("var #%u"%(counter + 1))
        myEntry(root, textvariable=temp_var).grid()
     
    root.mainloop()
    A+

    Pfeuh

  2. #2
    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,

    Il y a bien plus simple mais je voulais 'jouer' avec l'event sans toucher a ton code

    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
    from Tkinter import *
     
    class myEntry(Entry):
        def __init__(self, container, **kwds):
            Entry.__init__(self, container, **kwds)
            self.bind("<Key-Return>", self.returnPressed)
     
        def returnPressed(self, event):
            print "return pressed"
            event.widget.event_generate('<Tab>')
            # TODO: here tabulation
     
    root = Tk()
     
    for counter in range(20):
        temp_var = StringVar()
        temp_var.set("var #%u"%(counter + 1))
        myEntry(root, textvariable=str(temp_var)).grid()
     
    root.mainloop()
    @+

    Edit : Plus simple sauf si tu utilise ton StringVar() autre part bien sur

  3. #3
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Merci beaucoup! Je ne connaissait pas event_generate, ça va vite me devenir indispensable. J'ai du mal à imaginer qu'il existe une solution plus simple, donc ça m'intéresse ausi.

    A+

    Pfeuh

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

    Je ne parlais pas de l'event_generate. En effet difficile de faire plus simple.
    Je parlais du code en général et de l'utilisation de StringVar et class myEntry(Entry).
    Mais vu ton niveau pas la pêne dans parler.

    Bon code

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

Discussions similaires

  1. xmodmap Remplacer une touche par une autre
    Par zamborta dans le forum Matériel
    Réponses: 1
    Dernier message: 05/12/2014, 14h57
  2. remplacer une touche par une autre
    Par iam dans le forum Delphi
    Réponses: 9
    Dernier message: 06/08/2006, 14h48
  3. Simuler une touche par une autre sous Windows
    Par sdelaunay dans le forum Windows
    Réponses: 2
    Dernier message: 05/05/2006, 14h31
  4. Remplacement d'un segment par un autre
    Par p0Kep0K dans le forum Langage
    Réponses: 3
    Dernier message: 09/02/2006, 18h45
  5. remplacement d'une valeur par une autre
    Par hugoos dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2005, 21h43

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