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 :

Exécuter une fonction en appuyant sur la touche Entrée


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut Exécuter une fonction en appuyant sur la touche Entrée
    Bonjour,

    Dans le code ci-dessous, j'arrive à exécuter la fonction get.Text() en appuyant sur le bouton "Enter" (ligne 51), par contre dès que j'essaie de le remplacer par une action sur le bouton entrée de mon clavier (ligne 57), j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\ProgramData\Anaconda2\lib\lib-tk\Tkinter.py", line 1542, in __call__
        return self.func(*args)
    TypeError: getText() takes no arguments (1 given)
    Mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #Importation des modules
    import pandas as pd
    import Tkinter as Tk
    from Tkinter import *
     
    # global Value
     
    # root = Tk()
     
    #on cree la dataframe
    Solutions = pd.DataFrame({
        'ani': ['Ane', 'Brebis', 'Canard', 'Dindon', 'Elephant', 'Fouine',
                'Girafe', 'Heron'],
        'pay': ['Allemagne', 'Belgique', 'Croatie', 'Danemark', 'Espagne',
                'France', 'Grece', 'Hongrie'],
        'fru': ['Amande', 'XXXXX', 'Cerise', 'Date', 'XXXXXX', 'Fraise', 'XXXXX',
                'XXXXXXX'],
        'ali': ['Amande', 'XXXXX', 'Cerise', 'Date', 'XXXXXX', 'Fraise', 'XXXXX',
                'XXXXXXX'],
    }, index=[
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
    ])
     
    def getText(event):
        Lettre = entree1.get()
        Element = entree2.get()
        global Value
        Value = Solutions.loc[Lettre, Element]
        print Value
        label3 = Label(fen, width=40, text=Value)
        label3.pack(side=BOTTOM)
        return Value
     
    fen = Tk()
    fen.title('fenetre de saisie')
     
    label1 = Label(fen, text="Enter a letter")
    label1.pack(side=LEFT)
     
    label2 = Label(fen, text="And an element")
    label2.pack(side=LEFT)
     
    valeur1 = StringVar()
    entree1 = Entry(fen, width=10, textvariable=valeur1)
    entree1.pack(side=LEFT)
     
    valeur2 = StringVar()
    entree2 = Entry(fen, width=30, textvariable=valeur2)
    entree2.pack(side=LEFT)
     
    bouton2 = Button(fen, text="Quit", command=fen.quit)
    bouton2.pack(side=LEFT)
     
    fen.bind("<Return>", getText)
     
    fen.mainloop()
    Merci par avance pour votre aide.

    Cordialement,

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 744
    Par défaut
    Salut,

    Et si vous ouvriez un tuto (ou mieux la documentation) sur tkinter? Vous y trouveriez que la fonction passée en paramètre d'un .bind reçoit un event pour argument (et sauriez quoi en faire) alors que celle passée comme "command" d'un Button n'en reçoit pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Et si vous ouvriez un tuto (ou mieux la documentation) sur tkinter? Vous y trouveriez que la fonction passée en paramètre d'un .bind reçoit un event pour argument (et sauriez quoi en faire) alors que celle passée comme "command" d'un Button n'en reçoit pas.

    - W
    Sans la première phrase, la réponse aurait été moins hautaine ... Bon, au final, j'ai trouvé et corrigé mon code.

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

Discussions similaires

  1. [Google Sheets] Exécuter une fonction en cliquant sur une feuille
    Par LePaladin dans le forum APIs Google
    Réponses: 4
    Dernier message: 25/02/2019, 14h43
  2. Valider une sélection en appuyant sur la touche entrée
    Par canadianfanatic dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 29/08/2011, 14h16
  3. Réponses: 3
    Dernier message: 18/05/2010, 15h37
  4. Intercepter l'appuye sur la touche entrée
    Par poseidon2 dans le forum MFC
    Réponses: 1
    Dernier message: 04/08/2008, 17h11
  5. Réponses: 7
    Dernier message: 23/08/2006, 18h20

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