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 :

Déterminer qu'un Entry est vide


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut Déterminer qu'un Entry est vide
    Bonjour à tous

    J'ai besoin de récupérer les valeurs de 2 widgets Entry.J'ai fais des bind, pas de souci. Je dois lancer une fonction, seulement si les 2 Entry ne sont pas vides. Le souci, c'est que je n'arrive pas à savoir ce que renvoie l'Entry quand on ne rentre rien dedans. J'ai essayé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if self.entry1.get() != None:
    if self.entry1.get() != ""
    if self.entry1.get() != " "
    if self.entry1.get():
    Mais aucun ne fonctionne :s

    Avez-vous une idée ?

  2. #2
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    Normalement c'est une chaîne vide : '' ou "".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    Ben justement j'ai déjà essayé ça et ça ne fonctionne pas :s

    J'ai testé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    f_data=open("data.conf","a+")
    if(self.entry1.get() != "" and self.entry2.get() != ""):
        f_data.write(self.entry1.get() + "=" + self.entry2.get() + "\n")
    f_data.close()
    Le souci c'est que ça écrit à chaque fois dans le fichier, meme si un des champs reste vide. Je me retrouve avec ça dans le fichier:

    Les deux dernières lignes ont été rentrées correctement, mais dans la troisième j'ai fais exprès de laisser le premier champ vide. On voit bien le problème :s

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    En effet...
    Aurais-tu affecter à ton entry un StringVar ? si oui, c'est peut-être la valeur de ce dernier qu'il faut checker, sinon, un moyen de contourner le problème, (mais qui ne le résoud pas pour autant...) serait de checker la longueur de la chaîne.

    Avant d'utiliser ce contournement, pourrais-tu tester ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    print [self.entry1.get(), self.entry2.get()]
    '''f_data=open("data.conf","a+")
    if(self.entry1.get() != "" and self.entry2.get() != ""):
        f_data.write(self.entry1.get() + "=" + self.entry2.get() + "\n")
    f_data.close()'''
    Ça afficherait juste les chaînes en brut, et permettrait de comprendre le pourquoi du comment.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Par défaut
    Salut

    Je n'utilise pas de StringVar() et le print me sort ["",""].

    On dirait bien une chaîne vide, je ne comprend pas pourquoi ça ne fonctionne pas =s

  6. #6
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    essayes ceci maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    e1,e2=self.entry1.get(),self.entry2.get()
    print [e1, e2]
    print type(e1), type(e2)
    print e1=='', e2==''
    if e1 or e2:
        print 'e1==%s\ne2==%s\nshould not write...'%(e1,e2)
    else :
        print 'e1==%s\ne2==%s\nshould write...'%(e1,e2)
    '''f_data=open("data.conf","a+")
    if(self.entry1.get() != "" and self.entry2.get() != ""):
        f_data.write(self.entry1.get() + "=" + self.entry2.get() + "\n")
    f_data.close()'''

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

Discussions similaires

  1. [XL-2007] Déterminer si une plage est vide
    Par Dadadidou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2012, 16h25
  2. Déterminer si un dossier est vide
    Par bionicleman dans le forum Débuter
    Réponses: 6
    Dernier message: 17/02/2009, 22h31
  3. [SQL] Déterminer si le résultat d'une requête est vide ou non
    Par khamett dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/01/2008, 21h53
  4. Réponses: 6
    Dernier message: 25/07/2007, 09h54
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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