Bonjour,

J'ai presque honte de poser cette question, mais je m'arrache les cheveux à trouver une solution à ce petit exercice pratique.

J'ai écrit un petit script qui est supposé incrémenter à chaque clic de souris dans un canvas une variable "turn" (c'est un exercice pour apprendre). Et suivant la valeur de "turn" je prend lance cliquer_one() ou cliquer_two().

Mais cette dernière ne s'incrémente pas. Merci de votre aide, je pense qu'il s'agit d'un problème de contexte ???

Mon code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
from tkinter import *
 
# ###################################################################################
def raz():
    turn=2
# ###################################################################################
def cliquer_one(event):
    can.create_text(250,100,text=str(turn))
    MonTour = Label(fen, text="1 - Tour N° {}".format(turn)).pack()
# ###################################################################################
def cliquer_two(event):
    can.create_text(250,100,text=str(turn))
    MonTour = Label(fen, text="2 - Tour N° {}".format(turn)).pack()
# ###################################################################################
# ###################################################################################
 
turn = 0
fen = Tk() 
fen.title("TOTO")
raz()
 
can = Canvas(fen,bg="light grey",width=500,height=200)
 
if turn == 0:
    can.bind("<Button-1>", cliquer_one)
    turn = 1
elif turn == 1:
    can.bind("<Button-1>", cliquer_two)
    turn = 2
elif turn == 2:
    MonTour = Label(fen, text="0 - Tour N° {}".format(turn)).pack()
    turn = 0
 
can.pack()
fen.mainloop()