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

GUI Python Discussion :

Problème pour gérer des exceptions


Sujet :

GUI Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Problème pour gérer des exceptions
    Bonjour à tous,

    Je cherche une petite astuce pour essayer de limiter la gestion des exceptions

    dans mon programme.

    Le programme en question permet de convertir des grandeurs physiques.
    L'utilisateur a le choix entre plusieurs fenêtres représentant chacune une

    grandeur physique différente (longueur, hauteur, poids...)
    Pour chacune des grandeurs, on choisi via un wxComboBox le type de

    conversion (m en mm, kg en tonne...) et on rentre la valeur à convertir dans un

    wxStaticText. Le résultat apparait dans un autre wxStaticText.

    Voici un petit exemple du programme qui permet de faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #... début du programme, construction d'1 fenêtre principale...
        def fen1():
            #Code permettant de créer fen1 et d'y inclure les widgets
            def operation():
                #Code pour la conversion
        def fen2():
            #Code permettant de créer fen2 et d'y inclure les widgets
            def operation():
                #Code pour la conversion
        def fen3():
            #Code permettant de créer fen3 et d'y inclure les widgets
            def operation():
                #Code pour la conversion
    Avec mon code et mes opérations purement numérique, la seule erreur possible

    est de rentrer une valeur de type string au lieu de float ou encore rien du tout

    et de demander tout de même le calcul.

    J'utilise donc la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try:
        #Code...
    except:
        #Code...
    Le problème c'est que là tout de suite je n'ai pas trouvé d'autres moyens que de faire comme cela:

    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
    #... début du programme, construction d'1 fenêtre principale...
        def fen1():
            #Code permettant de créer fen1 et d'y inclure les widgets
            def operation():
                try:
                    #Code pour la conversion
                except:
                    avertissement()
            def avertissement():
                #Création boite de dialogue pour avertissement
     
        def fen2():
            #Code permettant de créer fen2 et d'y inclure les widgets
            def operation():
                try:
                    #Code pour la conversion
                except:
                    avertissement()
            def avertissement():
                #Création boite de dialogue pour avertissement
     
        def fen3():
            #Code permettant de créer fen3 et d'y inclure les widgets
            def operation():
                try:
                    #Code pour la conversion
                except:
                    avertissement()
            def avertissement():
                #Création boite de dialogue pour avertissement
    Afin de gagner un peu en ligne de code, j'aimerai pouvoir créer et appeler de façon "global" avertissement(), afin d'éviter à chaque fois de le retaper, j'avoue ne pas trop savoir comment faire.
    Je suis sûr que c'est super simple mais là je patoge grave, donc un petit coups de pouce serait le bienvenu.

    D'avance merci à tous pour vos conseils
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Pourquoi tu ne créés par la fonction avertissement au même niveau que fen1, fen2 et fen3. Tu pourra alors directement les appeler dedans.

    Pourquoi aussi, tu ne ferais pas pareil avec opération qui en fonction de paramètres ferait tel ou tel calcul. En tout cas, cela me semblerait plus lisible (bon, j'ai jamais été très fan des déclarations de fonction dans des fonctions).

    Sinon, au niveau de ta signature, pour le tuto de Swinnen, il est disponible maintenant en ligne ( http://python.developpez.com/cours/TutoSwinnen/ )

  3. #3
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Salut,

    Citation Envoyé par Jiyuu Voir le message
    on rentre la valeur à convertir dans un
    wxStaticText
    Un textCtrl, non?

    Si je comprends bien ton problème, tu dois valider des valeurs de l'utilisateur avant de lancer tes calculs; dans ce cas, regarde du côté des validator.

    Si tu veux transférer un avertissement au travers ton interface graphique, utilise les wxEvent.

    J'espere que ça pourra t'aider sans trop complexifier ton code.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Guigui_ Voir le message
    Pourquoi tu ne créés par la fonction avertissement au même niveau que fen1, fen2 et fen3. Tu pourra alors directement les appeler dedans.
    C'est ce que je voulais faire, mais sans succès.

    Pourquoi aussi, tu ne ferais pas pareil avec opération qui en fonction de paramètres ferait tel ou tel calcul. En tout cas, cela me semblerait plus lisible (bon, j'ai jamais été très fan des déclarations de fonction dans des fonctions).
    Très bonne idée.

    Sinon, au niveau de ta signature, pour le tuto de Swinnen, il est disponible maintenant en ligne ( http://python.developpez.com/cours/TutoSwinnen/ )
    C'est fait.


    Citation Envoyé par pacificator Voir le message
    Un textCtrl, non?
    Oui effectivement, désolé pour l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si je comprends bien ton problème, tu dois valider des valeurs de l'utilisateur avant de lancer tes calculs; dans ce cas, regarde du côté des validator.
    Je ne connaissais pas. J'y jetterai un coups d'oeil.

    Si tu veux transférer un avertissement au travers ton interface graphique, utilise les wxEvent.
    Si tu parles de la déclaration des fonctions de la forme
    c'est ce que j'ai fait.

    Merci pour vos conseils.
    Je vais voir si je peux me débrouiller comme ça.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

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

Discussions similaires

  1. problème pour gérer des exceptions
    Par slyfer dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/02/2009, 09h50
  2. Réponses: 4
    Dernier message: 08/04/2007, 17h17
  3. Problème pour Télécharger des fichiers
    Par joce3000 dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/01/2005, 10h30
  4. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13
  5. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07

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