Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Fonction pour gérer l'erreur d'exception


Messages recommandés

Posté(e)

bonjour;

J'ai crée une application à l'aide de " TKINTER " qui marche actuelle bien selon mes faibles connaissances puisque je suis débutant avec le langage PYTHON (version 3.5) sous Windows 10 64 bits.

Voici l'échantillon  du code de l'application qui  concerne les erreurs d'exception et qui me m’empêche à finaliser la version 1 de cette application:

 
def message_erreur():
    if ent_labo_loc.get()==StringVar:
        lb_loc_exception['text']='Erreur, veuillez introduire seulement des chiffres'
        ent_labo_loc.set("")
    else:
        lb_loc_exception['text']=''
     
def afficher_resultat_loc():

    try :              
        calcul=20*log10(float(ent_labo_loc.get())/float(entree_ref_loc.get()))
        calcul=round(calcul,3)
        ent_correction_loc.set(calcul)
        ent_labo_loc.set("")
    except :                
        message_erreur()
    finally :
        pass

 

la fonction " afficher_resultat_loc() "  est attache au bouton de validation du calcul mathématique., dont voici le code :

 
#======= bouton de validation de la correction =====

bt_loc_validation=Button(loc,
                     text='Valider',
                     bd=14,             
                     relief=RIDGE,
                     font=('arial',16,'bold'),
                     justify='left',
                     command=afficher_resultat_loc)
bt_loc_validation.place(x=420,y=460)
 

finalement j'ai crée un texte qui doit s'afficher chaque fois qu'on introduit des caractères au lieu des chiffres par un label dont voici le code :

 
#affichage d'un message en cas d'erreur exception

lb_loc_exception=Label(loc,text='',
                   fg='red',
                   font=('arial',18,'bold'),
                   justify='left',
                   bg='cadet blue'
                   )

lb_loc_exception.place(x=30,y=420)
 

le texte qui va être intégré dans ce label n'apparait que lorsque utilisateur écrit des caractères et doit   impérativement s'effacer quand l'utilise après introduit un nombre décimal.

Voici les images  qui décrivent   l'apparence de l'application et ce que je souhaite avoir comme resultat :

https://user.oc-static.com/upload/2018/08/16/15344174104002_Sans titre.jpg

https://nsa39.casimages.com/img/2018/08/18/180818124025745940.jpg

j’espère que j'ai bien détaillé mon problème

Merci pour l'aide

 

  • Tonton a modifié le titre en Fonction pour gérer l'erreur d'exception
  • 2 semaines après...

Posté(e)

Bonjour,

avez vous pensé à ajouter une mise à jour du texte du Label lb_loc_exception quand, justement, l'exception n'est plus levée après une première mauvaise saisie.

J'aurais tendance à tester l'entrée utilisateur avant de compter sur un try/catch

Posté(e) (modifié)

Bonsoir,

Lors de l'appel à la fonction message_erreur() quand une exception est levée lors du try() (i.e. lorsque ent_labo_loc n'est pas un float => plantage de la fonction calcul), tu affiches ton Label contenant ton texte via la méthode place (lb_loc_exception.place).

Nulle part dans ton code, lorsque ton label a été affiché une fois, tu ne fais appel à une méthode qui le masquerait ou qui détruirait le widget. As tu essayé de placer une méthode Destroy() lorsque ton appel au try est couronné de succès?

En lieu et place d'un try/catch une meilleure méthode serait de tester l'entrée utilisateur avant d'appeler la fonction de calcul.

 

Modifié par Greywolf
correction orthographique

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...