Impossible de gérer des chec button dan une boucle

Fermé
Ralfounet Messages postés 4 Date d'inscription jeudi 19 juillet 2018 Statut Membre Dernière intervention 21 juillet 2018 - Modifié le 21 juil. 2018 à 13:08
yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 - 21 juil. 2018 à 17:31
Bonjour,
J'ai un problème. J'essaye de faire un action vérité.
Pour le faire, il me faut pouvoir définir le nombre de joueurs et leurs sexe. J'ai commencé pas faire ouvrir un popup qui demande le nombre de joueurs. elle marche.

Mais maintenant il me faut une boucle qui ouvre le bon nombre de champ de saisie et de check button.
J'ai réussi mais je n'arrive pas a récupérer les valeurs des check buttons séparément parce que si j'utilise variable=ma_variable , tout les checkbox changeront de valeurs automatiquement.

import Tkinter as tk
import random as ra
import tkMessageBox
import tkFileDialog
fenetre =tk.Tk()
def conversion():
    text=c[0].get()
    print text
def onselect(evt):
    w = evt.widget
    index = int(w.curselection()[0])
    value = w.get(index)
    fenetre.destroy()
    quijoue=tk.Tk()
    quijoue.title("joueurs")
    i2=0
    i3=0
    i4=0
    liste=[]
    liste2=[]
    vars=[]
    varlist=[]
    vars2=[]
    entry=[]
    c=[]
    var=0
    print value
    while i3 < value:
        liste2.append(i3)
        entry.append(i3)
        varlist.append(0)
        c.append(i3)
        i3=i3+1
    while i2 < value:
        liste2[i2] = tk.Frame(quijoue)
        liste2[i2].pack(fill=tk.BOTH, expand=1)
        entry[i2] = tk.Entry(liste2[0], text="")
        entry[i2].grid(row=i2, column=0)
        i2=i2+1
        #macheckbox
    while i4 < value:
        c[i4] = tk.Checkbutton(liste2[0], text="Femme", onvalue=1, offvalue=0)
        c[i4].pack()
        c[i4].grid(row=i4, column=1)
        i4=i4+1
    bouton = tk.Button(liste2[0], text="go", command=conversion)
    bouton.grid(row=value, column=0)
    quijoue.mainloop()

fenetre.title("nombre de joueurs")
liste = tk.Listbox(fenetre)
i=1
while i<101:
    liste.insert(i, i)
    i=i+1
liste.bind('<<ListboxSelect>>', onselect)
liste.pack()
fenetre.mainloop()

liste1 = ["grr","mange moi","mange ton voisin","essaie de tirer"]
tot= len(liste1)
tot= tot
nb= ra.randint(0,tot)
print liste1[nb]


Merci a ceux qui répondront.






EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 Ambassadeur 1 568
21 juil. 2018 à 10:48
bonjour,
remarques-tu que le programme python que tu partages est particulièrement illisible, sans les indentations?
peux-tu donc partager un programme complet, testable, en utilisant le formatage de code proposé par ccm: Les Balises de code.
ce serait utile de préciser à quelle ligne tu essaies de récupérer les valeurs de quels check buttons.
0
Ralfounet Messages postés 4 Date d'inscription jeudi 19 juillet 2018 Statut Membre Dernière intervention 21 juillet 2018
21 juil. 2018 à 16:19
Merci pour ta réponse.
J'essaie de récupérer les valeurs à la ligne 7 et les boutons sont générés vers la ligne 40.
Ensuite je vois pas de quoi tu parles pour les indentations parce que moi je les ai. fin je te mets une photo de ce que je vois:
0
yg_be Messages postés 23473 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 février 2025 1 568
21 juil. 2018 à 17:31
merci de lire et d'appliquer ceci.
0