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 :

Radiobuttons Valeurs Erreur


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Radiobuttons Valeurs Erreur
    Bonjour,

    Je me retrouve ici afin que quelqu'un m'aide à trouver mon erreur, et ainsi m'expliquer. Je cherche à faire un programme qui consiste à déterminer le prix d'une lettre en fonction de la masse. Cependant, j'utilise des radiobuttons, et j'aimerais que les variables changent en fonction de ces radiobuttons. Voici le 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    ##################################################
    # Importation des modules :
     
    from tkinter import*
     
    ##################################################
    # Déclaration des fonctions :
     
    def afficher_prix(event):
        global value
        Grammes = float(Entrée_grammes.get())
        Valeur = int(value.get())
        #############################################
        # Lettre Verte :
        if  Valeur == 1 :
            if Grammes >= 3000 :
                Erreur = Label(Fenêtre, text = "/!\ Taille trop grande!", fg = 'red')
                Erreur.grid(column = 0, row = 8)
            elif Grammes >= 500 :
                valeur_prix = 5.6
                Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
                Prix.grid(column = 0, row = 8)
            elif Grammes >= 250 :
                valeur_prix = 4.2
                Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
                Prix.grid(column = 0, row = 8)
            elif Grammes >= 100 :
                valeur_prix = 2.8
                Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
                Prix.grid(column = 0, row = 8)
            elif Grammes >= 20 :
                valeur_prix = 1.4
                Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
                Prix.grid(column = 0, row = 8)
            else :
                valeur_prix = 0.7
                Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
                Prix.grid(column = 0, row = 8)
        #############################################
        # Lettre Prioritaire :
     
        if Grammes >= 3000 :
            Erreur = Label(Fenêtre, text = "/!\ Taille trop grande!", fg = 'red')
            Erreur.grid(column = 0, row = 8)
        elif Grammes >= 500 :
            valeur_prix = 6.4
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
        elif Grammes >= 250 :
            valeur_prix = 4.8
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
        elif Grammes >= 100 :
            valeur_prix = 3.2
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
        elif Grammes >= 20 :
            valeur_prix = 1.6
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
        elif Grammes == 0 :
            valeur_prix = 0
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
        else :
            valeur_prix = 0.8
            Prix = Label(Fenêtre, text = "Prix totale : " + str(valeur_prix) + " euros", fg = 'red')
            Prix.grid(column = 0, row = 8)
     
    ##################################################
    # Déclaration de l'interface graphique :
     
    Fenêtre = Tk()
    Fenêtre.title("Pèse lettres")
     
    ##################################################
    # Déclaration des variables :
     
    Etat = IntVar()
    value = IntVar()
     
    ##################################################
    # Programme principal :
     
    Check_LettreVerte = Radiobutton(Fenêtre, text = 'Lettre Verte',variable = value, value = 1)
    Check_LettreVerte.grid(column = 1, row = 3)
     
    Check_LettrePrioritaire = Radiobutton(Fenêtre, text = 'Lettre Prioritaire', variable = value, value = 2)
    Check_LettrePrioritaire.grid(column = 2, row = 3)
     
    Texte1 = Label(Fenêtre, text = "Poids de la lettre (en g) :")
    Texte1.grid(column = 0, row = 5)
     
    Entrée_grammes = Entry(Fenêtre, width = 8)
    Entrée_grammes.grid(column = 1, row = 5)
    Entrée_grammes.bind("<Return>", afficher_prix)
     
    Bouton_quitter=Button(Fenêtre,text="Quitter", width = 10, height = 1,command=Fenêtre.destroy) #Créer un bouton "bouton_quitter" qui permettra de quitter la fenêtre
    Bouton_quitter.grid(column = 9, row = 8)
     
    Fenêtre.mainloop()
    Mon codage n'est peut être pas assez compacte mais il devrait marcher

    Cordialement, Valerio

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par ValerCast Voir le message
    Mon codage n'est peut être pas assez compacte mais il devrait marcher
    Il fonctionne ou il plante (et vous avez un message d'erreur), il fait ce que vous en attendez ou pas (et on ne va pas imaginer ce que vous vouliez qu'il fasse)....
    Ça serait bien de mieux exposer le problème rencontré ou à résoudre.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Le programme fonctionne normalement, il n'a pas d'erreur. Le problème que je rencontre, c'est que mon programme ne sait pas voir si le radioboutton demandé, est activé ou pas. Dans mon exemple, je dois dire si il s'agit d'une lettre prioritaire ou d'une lettre verte. Si la lettre prioritaire est enclenché, et que par exemple je demande le prix d'une lettre si le poids est de 4g, il affichera que le prix sera égale à 0.8 euros.
    Tandis que si le radiobouton 'Lettre Verte' est activé, le prix de la lettre si le poids est de 4g est égale à 0.7 euros.

    Tu comprends mon fonctionnement?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par ValerCast Voir le message
    Tandis que si le radiobouton 'Lettre Verte' est activé, le prix de la lettre si le poids est de 4g est égale à 0.7 euros.

    Tu comprends mon fonctionnement?
    non. lancez à la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> import tkinter as tk
    >>> root = tk.Tk()
    >>> value = tk.IntVar()
    >>> tk.Radiobutton(text = 'Lettre Verte',variable = value, value = 1)
    <tkinter.Radiobutton object at 0x00000000034AD908>
    >>> _.pack()
    >>> tk.Radiobutton(text = 'Lettre Rouge',variable = value, value = 2)
    <tkinter.Radiobutton object at 0x00000000033D9E10>
    >>> _.pack()
    sélectionnez sur "lettre verte", value.get() doit retourner 1:
    sélectionnez "lettre rouge", çà retourne:
    Après le souk des if..then...elif...else...
    Essayez d'écrire une fonction calculer_prix(grammes, valeur) qui retourne le prix en fonction de... elle sera plus facile à mettre au point en dehors de tkinter (avec des print).... et il suffira d'afficher ce que retourne la fonction.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Je vois, merci beaucoup, et je ferais en fonction de tes avis.

    Bonne soirée

Discussions similaires

  1. [AC-97] Champs mémo contenant la "valeur" : #Erreur
    Par 6ril25 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/12/2011, 10h55
  2. Perte de valeur - erreur de débutant je suppose
    Par gooze dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/06/2009, 01h26
  3. RadioButton valeur par defaut
    Par noquioz dans le forum Tkinter
    Réponses: 11
    Dernier message: 02/02/2009, 17h45
  4. radiobutton erreur n'est pas une valeur entière correcte
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/03/2006, 21h27
  5. Msg d'erreur: Erreur de traduction. Valeur hors des limites
    Par Zoilus dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/12/2005, 16h15

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