from tkinter import*
pen=Tk()
canvas=Canvas(width=720,height=1280)
canvas.place(relx=0,rely=0)
canvas.create_arc(0,150,150,300, start=0, extent=359, fill="red", tags=("kirmizi"))
canvas.create_arc(200,150,350,300, start=0, extent=359, fill="black", tags=("siyah"))
canvas.create_arc(400, 150, 550, 300, start=0, extent=359, fill="blue", tags=("mavi"))
def kontrol(name):
label["text"]=name
canvas.tag_bind(tagOrId="kirmizi",sequence="<ButtonPress-1>",
func=lambda event: kontrol("Bu Nesnenin Rengi Kırmızıdır"))
canvas.tag_bind(tagOrId="siyah",sequence="<ButtonPress-1>",
func=lambda event: kontrol("Bu Nesnenin Rengi Siyahtır"))
canvas.tag_bind(tagOrId="mavi",sequence="<ButtonPress-1>",
func=lambda event: kontrol("Bu Nesnenin Rengi Mavidir"))
label=Label(text="")
label.place(relx=0.05,rely=0.5)
pen.mainloop()
Yukarıda basit bir örneğini gördüğünüz kodların anlatmak istediği şu:
•Canvas widgetlarına tıklandığında renklerini tags’ların yardımıyla ekrana yazdırıyor.
•Bu kodların daha komplike versiyonunda n sayıda canvas widget’ı var ve her birinin belirli tag’ları var. Bunları ekranda random şeklinde yazdırıyorum. Bu yüzden tıklanılan widgetin tags’ını bilemiyorum ve eylem gerçekleştiremiyorum.
•canvas.find_withtag("text#örneğin:loremipsum") canvas.gettags(sayı#örneğin:3)
gibi 2 farklı şekilde tags’ların değerini döndürebiliyoruz ama benim widgetlarım random oluştuğu için hangi widgetin tags’ın ne olduğunu bilemiyorum. Bu iki yöntem sadece tags’lar ve tags’ların değeri bilindiğinde işe yarıyor.
•Yapmak istediğimi basitce özetlemek gerekirse:
Tıklanılan widget’ın tags değerini almak istiyorum,nasıl yapabilirim? Yardımlarınız için şimdiden teşekkürler…