SoS application sous Python

SoS application sous Python - Python - Programmation

Marsh Posté le 21-08-2003 à 18:22:15    

Bonjour a toutes et tous,
 
je souhaiterais finaliser mon apllication mais je suis bloqué sur une instruction.
 
l'application en question est une tache ou l'on doit cliquer sur des boutons (sur lesquels j'ai lié une image aléatoirement), si le bouton est identique a au moins une des 3 images modèles.
 
pour faire bref, j'arrive a générer ma série de 3 lignes de 12 boutons mais je n'arrive pas a  générer 3 nouvelles lignes, une fois que le dernier bouton de la série a été analysé et cela pendant le temps total de la tâche c a d 3minutes.
 
pour résumer il faudrait qu'une fois le dernier bouton est analysé et que la souris le quitte, cela génère 3 nouvelle lignes, ainsi de suite pendant 3 min.
 
je vous donne mon code pour une meilleure comprehension:
 
__________________________________________________________
from Tkinter import *
import random
 
class ImButton(Button):
    def __init__(self, master, liste, modeles, **args):
         self.f = random.choice(liste)
         self.p = PhotoImage(file=self.f)
         self.modeles = modeles
         Button.__init__(self, master, args, image=self.p, state=DISABLED,
                     command=self.verif)
         self.bind("<Enter>", self.entre)
         self.bind("<Leave>", self.quitte)
 
 
    def verif(self):
       global bonsChoix, mauvaisChoix
       if self.f in self.modeles:
         bonsChoix += 1
       else:
         mauvaisChoix += 1
 
    def connect(self, bouton):
        self.connect_bouton = bouton
         
    def entre(self, e):
        if self["state"] == NORMAL:
            self["bg"] = "red"      
    def quitte(self, e):
        if self["state"] == NORMAL:
            if self.connect_bouton:
                self.connect_bouton["state"] = NORMAL
        self["state"]=DISABLED
 
bonsChoix = 0
mauvaisChoix = 0
 
fen1 = Tk()
frame1= Frame(fen1)
frame2= Frame(fen1)
frame1.grid(row=0, column=0)
frame2.grid(row=1, column=0)
 
 
 
#déclaration de la liste
noms_fichiers = ['c:/python23/images/im1.gif',
                 'c:/python23/images/im2.gif',
                 'c:/python23/images/im3.gif',
                 'c:/python23/images/im4.gif',
                 'c:/python23/images/im5.gif',
                 'c:/python23/images/im6.gif',
                 'c:/python23/images/im7.gif',
                 'c:/python23/images/im8.gif']
 
#tirage aléatoire
temp= noms_fichiers
file_ref1= random.choice(temp)
temp.remove(file_ref1)
 
file_ref2= random.choice(temp)
temp.remove(file_ref2)
 
file_ref3= random.choice(temp)
 
#affichage des images de ref 1, 2 et 3
fig_ref1 = PhotoImage (file=file_ref1)
fig_ref2 = PhotoImage (file=file_ref2)
fig_ref3 = PhotoImage (file=file_ref3)
 
label1= Label(frame1, image=fig_ref1, borderwidth=5, relief=RAISED)
label2= Label(frame1, image=fig_ref2, borderwidth=5, relief=RAISED)
label3= Label(frame1, image=fig_ref3, borderwidth=5, relief=RAISED)
 
label1.grid(row=0, column=0, padx=15, pady=150)
label2.grid(row=0, column=1, padx=15, pady=150)
label3.grid(row=0, column=2, padx=15, pady=150)
             
 
#Création des Boutons
r=2
while r >= 0:
    c=11
    while c>=0:
        b = ImButton(frame2, noms_fichiers, (file_ref1, file_ref2, file_ref3))
        b.grid(row=r, column=c, padx= 5, pady= 5, ipadx=10, ipady= 10, sticky=W+E+N+S)
        if c!=11 or r!=2 :
            b.connect(b_preced)
        b_preced = b
        c=c-1
    r= r-1    
b_preced["state"]=NORMAL
fen1.mainloop()
print "%s bons - %s mauvais" % (bonsChoix, mauvaisChoix)
____________________________________________________________
 
Merci par avance
 
cyril Lombardo


Message édité par CpT-Sheridan le 21-08-2003 à 18:23:11
Reply

Marsh Posté le 21-08-2003 à 18:22:15   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed