polpel_
Messages postés1Date d'inscriptionmercredi 6 décembre 2017StatutMembreDernière intervention 6 décembre 2017
-
6 déc. 2017 à 18:26
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 2022
-
9 déc. 2017 à 16:24
Bonjour,
Dans le cadre d'un projet de Terminale, j'ai décidé de programmer un jeu où l'on doit deviner l'âge d'une célébrité, en ayant le choix entre deux propositions, l'une vraie et l'autre fausse.
Ainsi, j'aimerais faire en sorte que lorsque l'on clique sur la réponse juste, le label où est indiqué le score soit incrémenté de +1 mais je n'y arrive pas.
Merci d'avance,
Paul
from tkinter import * from PIL import *
#Fenêtres win=Tk() win.configure(bg="#5575a8") win.title("The Age Finder.") win.geometry("1366x768")
#Création d'une variable correspondant au score du joueur score = 0
###################################################################Création du MENU######################################################################
#Titre du menu titre=Label(frame1,text="THE AGE FINDER",font=("KG HAPPY",80),bg="#5575a8",fg="white") titre.place(x=220,y=100) stitre=Label(frame1,text="Devinez l'âge des célébrités!",font=("KG HAPPY",20),bg="#5575a8",fg="white") stitre.place(x=300,y=250)
#Création du bouton "Commencer" menu start=Button(frame1,text="Commencer",font=("Minecraft",20),bg="#f4c842",height=2,width=15,command=frame1.destroy) start.place(x=570,y=450)
#Création du bouton "Quitter" menu quitter=Button(frame1,text="Quitter",font=("Minecraft",20),bg="#f4c842",height=2,width=15,command=quit) quitter.place(x=570,y=550) quitter2=Button(win,text="Quitter",font=("Minecraft",12),bg="#f4c842",height=2,width=15, command=quit) quitter2.place(x=10,y=770) quitter2.lower()
###################################################################Création du JEU######################################################################
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 202275 9 déc. 2017 à 16:24
Bonjour,
1- Lorsque l'on utilise un interface graphique (Tkinter par exemple) une boucle de traitement des évènements s'exécute en permanence, intercepte les évènements: clavier, souris etc... et déclenche les actions appropriées.
C'est le rôle de l'instruction "command" lors de la création d'un bouton par exemple.
Pour déclencher cette boucle de traitement, il faut insérer en fin de code:
#Boucle de traitement des évenements Tkinter
win.mainloop()
"win" étant la dérivation de la class "TK" crée ici:
#Fenêtres win=Tk()
2-Pour modifier des widgets Tkinter il faut utiliser les méthodes spécifiques à Tkinter.
Pour modifier un Label il faut utiliser la méthode "Set" après avoir modifié la création du Label:
#Création Scoring win
var_label = StringVar() #Zone de communication avec objet TkInter/Label
afficherscore=Label(win,textvariable=var_label,font=("Minecraft",20),bg="#5575a8",fg="white",height=2,width=15)
var_label.set("Votre score : 0/10") #Initialisation via méthode "set" (optionnel)
3- La fonction "Juste", appelée lors de l'appui du Bouton "C1", doit aussi contenir la modification du Label comme suit:
def juste():
global score
score+=1
labelscore = "Votre score : " + str(score) + "/10"
var_label.set(labelscore) #Initialisation via méthode "set"