Checkbox = 1 [Résolu]

- - Dernière réponse :  nicopoppe - 14 août 2019 à 19:35
Bonjour, je suis nouveau en programmation Python et je n'arrive pas à faire quelque chose : qu'une checkbox soit égal à 1. Par exemple l'utilisateur coche 3 checkbox et on affiche un résultat de 3. Je sais pas si je suis très clair, merci pour vos réponses d'avance..



Configuration: Windows / Chrome 76.0.3809.100
Afficher la suite 

1 réponse

Messages postés
8276
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 août 2019
411
0
Merci
bonjour, peux-tu partager ton code, en utilisant la coloration syntaxique?
Alors voici mon code, j'aimerais pouvoir afficher le total dans Tkinter mais la dernière commande text ne foctionne pas :/ , j'aimerais aussi trouvé une manière plus synthétique de faire ça pour éviter de recopier le code 50x si j'ai 50 éléments..


from tkinter import *

window = Tk()
var1 = IntVar()
var2 = IntVar()
def two():
    print("Total est ", var1.get()+var2.get())
    
    
c1 = Checkbutton(window, text="Chaise", variable=var1,command=two)
c1.pack()
c2 = Checkbutton(window, text="Table", variable=var2,command=two)
c2.pack()


text = Label(window,text=two)
text.pack()
mainloop()
> nicopoppe -
Bonsoir,

mais la dernière commande text ne foctionne pas


Une chaine de caractères doit être comprises entre apostrophes ou guillemets.

Pour faire ça de façon plus évolutives
, tu pourrais faire quelque chose comme

from tkinter import * 

def total():
    tt = sum(var.get() for var in items.values())
    text['text'] = 'Le Total est de %u' % tt
    
window = Tk()

# Tuple des noms d'items
noms = ('Chaise', 'Table',)
# Dictionnaire nom => var
items = {nom:IntVar() for nom in noms}
# Cases à cocher
for nom, var in items.items():
    bt = Checkbutton(window, text=nom, variable=var, command=total)
    bt.pack()

text = Label(window,text='Le total est de 0')
text.pack()
    
mainloop()


La syntaxe
tt = sum(var.get() for var in items.values())


Est une forme condensée de faire :

tt = 0
for var in items.values():
    tt += var.get()


Avec ce code, tu peux ajouter d'autres noms dans le tuple noms pour ajouter d'autres cases à cocher.

Bonne continuation.
C'est exactement ce que je cherchais à faire, merci beaucoup d'avoir pris le temps pour un débutant ! Bonne continuation
Commenter la réponse de yg_be