Problème avec programmation CheckButton
Résolu
cvan85
Messages postés
59
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,

Je souhaite afficher 5 "cases à cocher" et un bouton de validation, puis a tester que 2 des 5 checkbutton (pas moins et pas plus) ont été cochés.
A l'exécution du programme lorsque je coche 1 case (ou la décoche) toutes les 5 cases se cochent également.
Voir l'extrait de code joint que je veux mettre en place.
Merci de votre aide.
Claude

Je souhaite afficher 5 "cases à cocher" et un bouton de validation, puis a tester que 2 des 5 checkbutton (pas moins et pas plus) ont été cochés.
A l'exécution du programme lorsque je coche 1 case (ou la décoche) toutes les 5 cases se cochent également.
Voir l'extrait de code joint que je veux mettre en place.
Merci de votre aide.
Claude
Configuration: Macintosh / Firefox 78.0
A voir également:
- Checkbutton tkinter get value
- Get data back - Télécharger - Récupération de données
- Get youtube - Télécharger - Téléchargement & Transfert
- Get adobe flash player - Télécharger - Divers Web & Internet
- Eagle get - Télécharger - Web & Internet
- Adobe get air - Télécharger - Édition & Programmation
2 réponses
Bonjour cvan85,
Essaie comme ça pour voir:
au lieu de :
Sinon, dans ta fonction, tu peux ecrire:
au lieu de :
Essaie comme ça pour voir:
r_v_c1 = BooleanVar(value=False) r_v_c2 = BooleanVar(value=False) r_v_c3 = BooleanVar(value=False) etc ..
au lieu de :
r_v_c1=r_v_c2=r_v_c3=r_v_c4=r_v_c5=BooleanVar(value=False)
Sinon, dans ta fonction, tu peux ecrire:
if (r_v_c1.get()) :
au lieu de :
if (r_v_c1.get()) == True:
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu partager du texte, plutôt qu'une image?
et en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
peux-tu partager du texte, plutôt qu'une image?
et en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Re-bonjour,
Désolé pour l'image à la place du texte.
Voilà le code.
Merci de votre aide.
Claude
Désolé pour l'image à la place du texte.
Voilà le code.
Merci de votre aide.
Claude
#!/usr/bin/env python3.9
from tkinter import *
import random
def second_tirage():
nb_case = 0
Label(can_gen, text= "Sec_tirage ok" ,bg='#FEFEE2',fg='black').place(x=100, y= 160)
if (r_v_c1.get()) == True:
nb_case=nb_case + 1
r_v_c1.set(False)
if (r_v_c2.get()) == True:
nb_case=nb_case + 1
r_v_c2.set(False)
if (r_v_c3.get()) == True:
nb_case=nb_case + 1
r_v_c3.set(False)
if (r_v_c4.get()) == True:
nb_case=nb_case + 1
r_v_c4.set(False)
if (r_v_c5.get()) == True:
nb_case=nb_case + 1
r_v_c5.set(False)
if nb_case != 2:
Label(can_gen, text= str(nb_case) + " case(s) saisie(s) :)" ,bg='#FEFEE2',fg='black').place(x=100, y= 180)
####### Programme principal
# Variables globales
choix = ['blue','green','red','yellow','purple']
fen1=Tk()
fen1.title("Pour test checkbutton")
fen1.geometry("350x470")
can_gen=Canvas(fen1, width=290, height=410, bg ="#FEFEE2")
can_gen.place(x=30,y=30)
# en test###########
r_v_c1=r_v_c2=r_v_c3=r_v_c4=r_v_c5=BooleanVar(value=False)
c1 = Checkbutton(can_gen, text = "1", height = 2, width = 5,bg ="#FEFEE2",variable= r_v_c1).place(x=45,y=60)
c2 = Checkbutton(can_gen, text = "2", height = 2, width = 5,bg ="#FEFEE2",variable= r_v_c2).place(x=95,y=60)
c3 = Checkbutton(can_gen, text = "3", height = 2, width = 5,bg ="#FEFEE2",variable= r_v_c3).place(x=145,y=60)
c4 = Checkbutton(can_gen, text = "4", height = 2, width = 5,bg ="#FEFEE2",variable= r_v_c4).place(x=195,y=60)
c5 = Checkbutton(can_gen, text = "5", height = 2, width = 5,bg ="#FEFEE2",variable= r_v_c5).place(x=245,y=60)
valid = Button(can_gen, text = "Validez", height = 2, width = 8,bg ="#FEFEE2",fg='red',command = second_tirage).place(x=100,y=100)
####################
Je galérai depuis un moment la dessus.
En effet l'affectation multiple est autorisée avec des variables "classiques" mais pas avec ce type de variables qui gèrent les widgets .
Claude
peux-tu alors marquer la discussion comme résolue?