Augmentation d'un score dans un label

polpel_ 1 Messages postés mercredi 6 décembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 6 déc. 2017 à 18:26 - Dernière réponse : lespinx 95 Messages postés lundi 9 octobre 2006Date d'inscription 9 décembre 2017 Dernière intervention
- 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######################################################################

#Calque frame1
frame1=Frame(win)
frame1.pack()
frame1.configure(bg="#5575a8",height=900,width=1440)



#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######################################################################

#Calque frame2
frame2=Frame(win)
frame2.pack()
frame2.configure(bg="#5575a8",height=500,width=1440)

#Definir bouton c1

def juste():
global score
score+=1


#Création bouton 1 frame2
c1=Button(frame2,text="50 ans",font=("Minecraft",20),bg="#f4c842",height=2,width=15,command=juste)
c1.place(x=420,y=320)

#Création bouton 2 frame2
c2=Button(frame2,text="53 ans",font=("Minecraft",20),bg="#f4c842",height=2,width=15)
c2.place(x=750,y=320)

#Création Label Q frame 2
q=Label(frame2,text="Quel est son âge?",font=("Minercraftory",40),bg="#5575a8",fg="white")
q.place(x=415,y=410)

#Création Scoring win
afficherscore=Label(win,text="Votre score : {0}/10".format(score),font=("Minecraft",20),bg="#5575a8",fg="white",height=2,width=15)
afficherscore.place(x=250,y=600)
afficherscore.lower()
Afficher la suite 
1Messages postés mercredi 6 décembre 2017Date d'inscription 6 décembre 2017 Dernière intervention

1 réponse

Répondre au sujet
lespinx 95 Messages postés lundi 9 octobre 2006Date d'inscription 9 décembre 2017 Dernière intervention - 9 déc. 2017 à 16:24
0
Utile
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"


Cordialement.
Commenter la réponse de lespinx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.