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 :

vérifier une entrée avec entry


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2020
    Messages : 67
    Par défaut vérifier une entrée avec entry
    Bonjour tout le monde,
    c'est la première fois que j'utilise ce forum et c'est mon premier code en python
    malheureusement je bloque la dessus

    j'ai crée une fenêtre dans la fenêtre j'ai 10 zones de texte que je dois lire
    et versifier si l’entrée est comprise entre 1 et 9
    voici mon bout de 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
     
    from tkinter import*
    from tkinter.constants import*
    fenetre=Tk()
    fenetre.geometry("450x450")
    fenetre.title("premier programme")
    fenetre['bg']='white'
     
    canvas=canvas(fenetre,width=450, height=450,background="white")
     
    EC1L1=entry(canvas,font=("purisa",32))
    canvas.create_window(25,25,window=EC1L1,height=45,width=45)
     
    EC1L2=entry(canvas,font=("purisa",32))
    canvas.create_window(25,75,window=EC1L2,height=45,width=45)
     
    EC1L3=entry(canvas,font=("purisa",32))
    canvas.create_window(25,125,window=EC1L3,height=45,width=45)

    mon probleme et la comment lire dans EC1L1,EC1L2,EC1L3 et vérifier une fois que je quitte cette zone texte que le contenue appartient à (1,2,3,4,5,6,7,8,9)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    canvas.grid(row=0,column=0)
    fenetre.mainloop()
    merci infiniment pour votre aide
    je bloque depuis hier

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Je vous propose de commencer par la lecture de ce petit tuto.

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2020
    Messages : 67
    Par défaut limiter le contenue à un seul cracetre
    Bonjour,
    toujours dans le même sens
    est ce qu'il y a un moyen pour contrôler le nombre d’entrée dans un entry

    voici mon bout de code pour declarer la zone d'entrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EC1L1 = Tk.Entry(canvas,font=("Purisa",25), validate="key",invcmd=Errorcmd ,vcmd=Validatecmd)
    canvas.create_window(25,25,window=EC1L1,height=45,width=45)
    alors comment faire pour restreindre la saisie a un seul caractère

    merci d'avance

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par THCH66 Voir le message
    alors comment faire pour restreindre la saisie a un seul caractère
    Relisez le tuto. que je vous ai indiqué.

    Ca dépend du dialogue que vous voulez avoir: obliger l'utilisateur à effacer le caractère avant de le remplacer(1) ou effacer le caractère précédent dès qu'il y a plus de ... caractères dans la chaine(2).

    Pour (1) çà se fait avec la validation: si la longueur de la chaine de caractères est >=1 on retourne False. Pour (2) ça se fait avec trace: chaque fois que l'utilisateur écrit un caractère de trop on efface le précédent.

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2020
    Messages : 67
    Par défaut
    Merci pour la réponse ,
    après la consultation du tuto qui m'a aider à avance un peut je bloque toujours malheureusement ça devient urgent pour un truc d'apparence banale

    mon problème c'est que j'ai une dizaine de entry que je dois au début (dés le début je bloque) les contrôler sur deux chose la première il faut que l'entrée soit entre 1 et 9 sinon je remplace la saisie par " " deuxièmement qu'elle soit un seul caractère cad de longueur 1
    voila je transmet tous le code pour ceux qui peuvent vraiment me donner un coup de mains c'est très gentille et grand merci d'avance

    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
    from tkinter import *
    fenetre = Tk()
    fenetre.geometry("700x650")
     
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
     
    canvas = Canvas(fenetre, width=600, height=500, bg='white')
    canvas.place(x=50,y=50)
     
     
    #creation des zones de saisie clavier
     
    def OnValidate(*args):
        for C in Saisie.get():
            if  C in "123456789":
     
     
                continue
            t = Tk.Toplevel(canvas)
            Tk.Label(t, text="Only numbers please").pack(padx=5, pady=5)
            Tk.Button(t, text="Ok", command=t.destroy).pack(padx=5, pady=5)
     
     
    Validatecmd = (canvas.register(OnValidate), '%S')
     
     
    Saisie = Tk.StringVar()
    Saisie.trace_variable("w", OnValidate)
     
     
    #j'ai une dizaine de cet entry
     
    EC1L1 = Tk.Entry(fenetre,textvariable=Saisie,font=("Purisa",25), validate="key",vcmd=Validatecmd)
    canvas.create_window(25,25,window=EC1L1,height=45,width=45)
     
     
     
    fenetre.mainloop()

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Tant pis pour vous si çà fait mal aux yeux.

    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
    import tkinter as tk
     
    root = tk.Tk()
     
    text = tk.StringVar()
    entry = tk.Entry(root, textvariable=text)
    entry.pack()
    def validate(e):
        c = text.get()
        if len(c) > 1:
            c = c[-1]
            text.set(c)
        if c and not c.isdigit():
            text.set('')
     
    text.trace('w', lambda *args: validate(entry))
     
    tk.mainloop()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Enregistrer ou mettre à jour une entrée avec Hibernate
    Par Palsajicoco dans le forum Hibernate
    Réponses: 6
    Dernier message: 28/06/2011, 21h31
  2. [Batch] vérifier une entrée utilisateur
    Par Ph4rell dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 29/07/2010, 08h28
  3. Vérifier une entrée nombre
    Par eyquem dans le forum Général Python
    Réponses: 15
    Dernier message: 15/12/2008, 14h38
  4. [MySQL] erreur à l'insert d'une entrée avec un champ ENUM
    Par mounia.n dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/05/2008, 16h44
  5. vérifier une signature avec SHA1-1024
    Par PoichOU dans le forum Sécurité
    Réponses: 1
    Dernier message: 02/07/2007, 11h56

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