[Python] A l'aide application Python/Tkinter

Fermé
python_newbie - 21 août 2003 à 19:50
 python_newbie - 22 août 2003 à 15:51
Bonjour a toutes et tous,

je souhaiterais finaliser mon application 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.

pour résumer, il faudrait qu'une fois que le dernier bouton est analysé et que la souris le quitte, cela génère 3 nouvelle lignes, et ce 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
A voir également:

1 réponse

python_newbie
22 août 2003 à 15:51
"Bump"

personne n'aurait une idée ? svp

merci d'avance
0