Augmentation d'un score dans un label

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

#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()
A voir également:

1 réponse

lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 77
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"


Cordialement.
0
Rejoignez-nous