SoS application sous Python - Python - Programmation
MarshPosté 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
#déclaration de la liste noms_fichiers = ['cpython23/images/im1.gif', 'cpython23/images/im2.gif', 'cpython23/images/im3.gif', 'cpython23/images/im4.gif', 'cpython23/images/im5.gif', 'cpython23/images/im6.gif', 'cpython23/images/im7.gif', 'cpython23/images/im8.gif']
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 = ['cpython23/images/im1.gif',
'cpython23/images/im2.gif',
'cpython23/images/im3.gif',
'cpython23/images/im4.gif',
'cpython23/images/im5.gif',
'cpython23/images/im6.gif',
'cpython23/images/im7.gif',
'cpython23/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