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 :

Intégrer des conditions dans Tkinter


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Intégrer des conditions dans Tkinter
    Bonjour à tous,

    Je suis actuellement en terminales SSI avec comme option ISN.

    Dans le cadre d'un mini projet pour cette option, nous voulons créer une fenêtre d'inscription via Python et l'intégrer à Tkinter.

    Mais sauf qu'on y arrive pas, voilà pour l'instant :

    from tkinter import *

    def repondre():
    affichage['text'] = reponse.get()

    Fenetre = Tk()
    Fenetre.title('Information')

    nom = Label(Fenetre, text = 'Votre nom :')
    reponse = Entry(Fenetre)
    valeur = Button(Fenetre, text =' Valider', command=repondre)
    affichage = Label(Fenetre, width=30)
    votre_nom=Label(Fenetre, text='Votre nom est :')
    nom.pack()
    reponse.pack()
    valeur.pack()
    votre_nom.pack()
    affichage.pack()


    Fenetre.mainloop()



    Donc nous voulons mettre des conditions comme par exemple un nombre minimum de caractère et ajouter des catégorie comme : age, prénom, adresse mail, mot de passe, etc..

    Merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    correct = 0
    while correct < 3:
    print ("Entrez votre mot de passe :")
    print ("Caractères speciaux autorisés : @=+-_. ><*!?;$")
    mdp = input ()
    chiffre = 0
    for i in mdp:
    if i in '0123456789':
    chiffre = chiffre + 1
    majuscules = 0
    for i in mdp:
    if i in 'AZERTYUIOPQSDFGHJKLMWXCVBN':
    majuscules = majuscules + 1
    caractères = 0
    for i in mdp:
    if i in '0123456789AZERTYUIOPQSDFGHJKLMWXCVBNazertyuiopqsdfghjklmwxcvbnéèà@=+-_. ><*!?;$:' :
    caractères = caractères + 1
    if chiffre >= 2:
    correct = correct + 1
    else:
    print ("2 chiffres minimum")

    while correct == 1:
    if majuscules > 1:
    correct = correct + 1
    else:
    print ("2 majuscules minimum")
    correct = 0
    while correct == 2:
    if caractères >= 6:
    correct = correct + 1
    else:
    print ("Entrez plus de 6 caractères")
    correct = 0

    print ("Bravo vous êtes connecté")




    Voilà ce qu'on pour le mot de passe, on veut intégrer tkinter maintenant et rajouter nom, prénom, age, adresse mail, date de naissance, etc..
    Merci bien, et désolé pour le up

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Pour tester la longueur des mots saisis, vous pouvez utiliser la méthode de chaîne de caractères length() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if mdp.length() < 4 :
        correct = True
    else :
        correct = False
    Pour des tests plus avancés sur les caractères saisis les expressions régulières peuvent vous aider mais attention, c'est très technique.

    Vous pouvez aussi forcer la saisie de la date de naissance dans des zones de saisie ne permettant d'entrer que X caractères et pas un de plus. Par exemple une zone pour le jour, une zone pour le mois, une pour l'année.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonsoir,

    Pour faciliter la lecture ainsi que favoriser les réponses, pensez à mettre votre code entre les balises "quote": bouton "#" en haut à droite dans l'éditeur de messages.

    Citation Envoyé par Trirouson Voir le message
    Voilà ce qu'on pour le mot de passe, on veut intégrer tkinter maintenant et rajouter nom, prénom, age, adresse mail, date de naissance, etc..
    Merci bien, et désolé pour le up
    Vous avez tout ce qu'il semble falloir!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def repondre():
        affichage['text'] = reponse.get()
    Le principe, est que lors de l'utilisation d'interfaces graphiques, en général, les actions déclenchées par cette interface "commandent les traitements".

    À partir de cette fonction, il suffit de récupérer la "reponse" dans une variable puis de la transmettre à une fonction permettant les tests que vous désirer effectuer sur la variable concernée!
    En gros, mettre votre code du deuxième message dans une fonction (prenant par exemple au moins votre variable "mdp" comme paramètre) et appeler cette fonction depuis votre fonction "repondre".

    Oui?

    Clodion

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci pour votre aide,

    Mais je n'arrive toujours pas..

    Quand je tente de l'intégrer rien ne se passe. Dans le programme je dois placer ou le from tkinter import* et le def repondre?

    Merci d'avance.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Désolé pour le up,

    En gros j'aimerais faire ça sous tkinter en ajoutant des conditions, mais le problème c'est que je dois finir pour vendredi donc j'ai grandement besoin de votre aide s'il vous plait.

    Merci beaucoup.
    Images attachées Images attachées  

  7. #7
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Trirouson Voir le message
    Désolé pour le up,
    En gros j'aimerais faire ça sous tkinter en ajoutant des conditions, mais le problème c'est que je dois finir pour vendredi donc j'ai grandement besoin de votre aide s'il vous plait.
    Merci beaucoup.
    Le principal est de partir de la partie "tkinter" pour faire le travail. Tout le reste se fait "à partir" des événements liés à l'interface graphique (par exemple appuyer sur un bouton).
    C'est une autre façon de voir que la programmation linéaire.

    À partir de votre premier message:
    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
    from tkinter import *
     
    personne = {"nom":""}
     
    def validite_nom(nom):
        est_valide = False
        if 5 < len(nom) < 10:
            est_valide = True
        return est_valide
     
    def repondre():
        nom = reponse.get()
        if validite_nom(nom):
            affichage['text'] = nom
            personne["nom"] = nom
        else:
            affichage['text'] = "Entrez une autre valeur"
        print(personne)
        print(personne["nom"])
     
    Fenetre = Tk()
    Fenetre.title('Information')
     
    nom = Label(Fenetre, text = 'Votre nom :')
    reponse = Entry(Fenetre)
    valeur = Button(Fenetre, text =' Valider', command=repondre)
    affichage = Label(Fenetre, width=30)
    votre_nom=Label(Fenetre, text='Votre nom est :')
    nom.pack()
    reponse.pack()
    valeur.pack()
    votre_nom.pack()
    affichage.pack()
     
     
    Fenetre.mainloop()
    Ici, deux parties: en premier la mise en place de la partie graphique ; en second, un traitement lorsqu'un événement se produit.
    Avec une interface graphique, ce sont ces événements qui "déclenchent" les traitements.

    Dans ce code, c'est à partir de la fonction "repondre" que vous pourrez travailler sur la réponse (tests, sauvegarde de la valeur…).
    Une manière de sauvegarder les caractéristiques d'une "personne" est d'inclure les renseignements que vous avez testés dans un dictionnaire afin de les rendre disponibles pour d'autres traitements (et de regrouper toutes les informations dont vous avez besoin).

    À partir de cet exemple, vous pouvez facilement ajouter d'autres demandes d'information (avec un seul bouton pour tout vérifier). Il est de même facile, à partir de la fonction "repondre" de vérifier la validité de chacune des réponses.

    Je le répète: ici, vous mettez en place l'interface graphique. Dans un second temps (une partie distincte du script) vous traitez les informations et vous pouvez même terminer le programme (par exemple en terminant la partie graphique puis en affichant tous les renseignements obtenus à l'écran).

    Citation Envoyé par Trirouson Voir le message
    Dans le programme je dois placer ou le from tkinter import* et le def repondre?
    L'importation doit ici se faire globalement (puisque vous utilisez tkinter dans la partie principal).
    Quant à la fonction: c'est dans le code ci-dessus.

    Clodion

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Ah d'accord je commence à comprendre merci beaucoup.

    Par contre pour intégrer plusieurs critères comme sur la photo que j'ai mise comment puis je procéder?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Pourquoi ne pas modifier le dictionnaire ainsi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    personne = {
    "nom" : "",
    "email" : "",
     
    #... Avec autant de champs que d'informations que vous voulez récupérer.
    }

    Dans la partie code Tkinter, vous créez des champs Entry et Label pour récupérer les saisies.

    Et dans la fonction répondre, vous ajoutez des blocs qui vérifient la validité de chaque information saisie.

    Si c'est OK vous écrivez dans le dictionnaire.

    Exemple pour le test sur l'email :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    def repondre(self) :
     
        emailSaisi = champEmail.get()
     
        if "@" in emailSaisi :
            # L'email est correct
     
            personne["email"] = emailSaisi
    Et ainsi de suite pour chaque champ du questionnaire.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci encore pour votre aide, mais je me permet de revenir vers vous car je n'y arrive vraiment pas.

    C'est la première fois que j'utilise python et tkinter donc je suis un peu perdu..

  11. #11
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Citation Envoyé par Trirouson Voir le message
    Merci encore pour votre aide, mais je me permet de revenir vers vous car je n'y arrive vraiment pas.

    C'est la première fois que j'utilise python et tkinter donc je suis un peu perdu..
    Avez-vous compris le message n°7?

    Dans tous les cas, si vous souhaitez de l'aide, essayez d'être un peu plus précis dans votre demande:
    -qu'avez-vous fait jusqu'à maintenant;
    -montrez votre code (entre balises "#" pour que cela soit lisible);
    -montrez les messages d'erreurs de Python s'il y en a;
    -précisez le plus possible à quel endroit vous bloquez.

    PS: n'hésitez pas à lire attentivement le livre de G. Swinnen (il est gratuit).

    Clodion

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2007, 18h48
  2. Réponses: 1
    Dernier message: 10/03/2006, 22h50
  3. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  4. Réponses: 6
    Dernier message: 31/01/2005, 09h47
  5. LYCOS ET MYSQL - Intégrer des images dans une base!
    Par archeo dans le forum Installation
    Réponses: 3
    Dernier message: 06/04/2004, 13h45

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