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 :

récupération d'un du contenu d'un champ Entry pour des appels fonction [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 23
    Par défaut récupération d'un du contenu d'un champ Entry pour des appels fonction
    J'ai écrit un ensemble de fonction suivi d'une interface graphique. J'essaie de récupérer le contenu d'un champ Entry pour des calculs grâce aux fonctions mais il y a toujours des erreurs à la ligne 51. Voici le programme en pièce jointe.
    Si quelqu'un peut m'aider.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 723
    Par défaut
    résolu ou pas alors? vu que le sujet est marqué résolu.

    En tout cas, tu essaies d'utiliser "variable" avant qu'elle ne soit affecter, donc logique que ça ne marche pas.
    Et pour passer un argument dans la commande d'un bouton, il faut utiliser la fonction lambda

    PS: on utilise plutôt le bouton # pour insérer du code sur le forum (sauf si le code est trop volumineux)

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 898
    Par défaut
    Hello,

    il faut utiliser la fonction lambda
    Les lambda sont du sucre syntaxique, elle ne sont donc pas obligatoires ni dans ce cas ni dans d'autres, et peuvent être remplacées par des fonctions qui retournent une fonction.

    Mais je suppose te connaissant que tu as été un peu vite dans l'écriture de ta réponse avec le terme "faut"

    @taradoum,

    Ça aurait été pas mal d'avoir ton code corrigé si d'autres membres étaient intéressés par ton problème...

    Voici ton code original

    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
    import tkinter as tk
    #premier test si le nombre passé en paramètre est premier
    def premier(n):
        if n==2:
            return True
        if n==3:
            return True
        if n%2==0:
            return False
        if n%3==0:
            return False
        i=5
        d=2
        while i*i<=n:
            if n%i==0:
                return False
            i=i+d
            d=6-d
        return True
    #estPremier construit la liste des nombre premier inférieur ou égal à n
    def estPremier(n):
        L=[]
        for i in range(2, n+1):
            if premier(i):
                L.append(i)
        return L
    #est valide vérifie si le caractère passé en paramètre est un nombre ou non
    def estValide(n):
        saisie=n
        try:
            nombre=float(saisie)
            return True
        except ValueError:
            return False
     
    def principale(n):
        if (estValide(n)) and (n<=1000):
            L=estPremier(n)
        #return L
        print(L)
     
    #x=int(input("Saisissez un nombre : "))
    #P=principale(x)
    #print(P)
    x=int(variable.get())
    principale(x)
     
    app=tk.Tk()
    variable=tk.StringVar()
    nombre=tk.Entry(app, textvariable=variable)
    nombre.pack()
    bouton=tk.Button(app, text='Recherche des nombres premiers', command=principale)
    bouton.pack()
    app.mainloop()
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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

Discussions similaires

  1. [AC-2007] Créations de champs de pour des horaires d'ouvertures d'établissement
    Par pascaloleron dans le forum Modélisation
    Réponses: 1
    Dernier message: 22/11/2012, 20h15
  2. Réponses: 3
    Dernier message: 28/06/2011, 13h52
  3. Grouper des champs pareil pour des totaux
    Par Mustard007 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/10/2009, 22h17
  4. Réponses: 7
    Dernier message: 15/03/2007, 08h50
  5. Réponses: 9
    Dernier message: 02/05/2006, 21h17

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