<p>我在代码中添加了onClick函数。这个函数从tkinter接收哪个小部件调用它以及一些信息,比如x,y坐标。
我用它在画布中找到了用户单击的最近的对象。
然后我使用itemcget来判断对象是什么颜色,并将颜色打印到终端输出。然后你可以用它来做任何你需要的事情</p>
<pre><code>from tkinter import *
from random import *
fenetre=Tk()
fenetre.title('Jeu Chlepko Peter')
fenetre.geometry('500x280+500+280')
zone=Canvas(fenetre,width=500,height=100)
zone.grid(row=3, rowspan=3, column=0, columnspan=3)
zone.create_rectangle(0,0,500,200,fill='Grey')
couleurs=['Red','Green','Blue','Yellow','White','Purple','Pink','Black','Cyan','Orange']
shuffle(couleurs)
def onClick(event):
item = event.widget.find_closest(event.x,event.y)
color = event.widget.itemcget(item,'fill')
print(color)
def jouer():
zone.total=0
zone.create_rectangle(0,0,500,200,fill='Grey')
zone.alea=randint(0,4)
zone.create_oval(0,100,100,0,fill=couleurs[zone.alea])
zone.create_oval(200,100,100,0,fill='Blue')
zone.create_oval(300,100,200,0,fill='White')
zone.create_oval(400,100,300,0,fill='Black')
zone.create_oval(500,100,400,0,fill='Orange')
bouton_jouer=Button(fenetre,text="Lancer le jeu",command=jouer)
bouton_jouer.grid(row=1,column=1)
description=Label(fenetre,text='')
description.grid(row=2,column=1)
zone.bind('<Button-1>',onClick)
bouton_quitter=Button(fenetre,text='Quitter', command=fenetre.destroy)
bouton_quitter.grid(row=7,column=1)
description=Label(fenetre,text='Cliquez sur la couleur demandée')
description.grid(row=0, column=1)
fenetre.mainloop()
</code></pre>