1 回答

TA貢獻1839條經(jīng)驗 獲得超15個贊
find_closest返回1意味著它正在查找您在畫布中創(chuàng)建的第一個元素,在本例中是create_text.
奇怪的是,當你create_text使用text=""它時,它似乎超越了你所有的其他元素。通過一個簡單的修復,text=" "現(xiàn)在可以在點擊時找到壁櫥矩形。
對于其他元素,當您分配option=""它時實際上會禁用(據(jù)我所知)該選項,因此您不是使用其默認值,而是主動告訴tcl解釋器不要使用它。這可以在其他元素中觀察到,例如create_rectangle(..., outline="")默認值outline="black"將不再適用,您甚至不會得到大綱。我有一種感覺text=""產(chǎn)生了類似的效果,并且由于某種原因基本上覆蓋了整個畫布區(qū)域,因此它會導致find_closest始終返回該元素。也許如果你幸運的話@BryanOakley(一位 tcl 專家)可以加入后端推理。
事實上,如果您嘗試過,find_above(item)您會注意到text始終低于之后繪制的其他元素。
簡而言之:
# Change this:
self.tag = self.canvas.create_text(10, 150, text="", anchor="nw")
# To this:
self.tag = self.canvas.create_text(10, 150, text=" ", anchor="nw")
添加回答
舉報