[Python] A l'aide application Python/Tkinter
python_newbie
-
python_newbie -
python_newbie -
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
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:
- [Python] A l'aide application Python/Tkinter
- Citizen code python - Accueil - Outils
- Desinstaller application windows - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Windows application démarrage - Guide
- Application word et excel gratuit - Guide