如何实际禁用Canvas小部件,而不仅仅是其中的任何对象,而是整个Canvas。
以下代码尝试在单击并更改其颜色后禁用Canvas。但你可以看到,它仍然可以点击黄色和黑色之间的黄色。
我希望在禁用之后,它不会响应任何事件,也许会变灰。
import tkinter as tk
w=tk.Tk()
color="yellow"
def flip(a):
global color
if color=="yellow": color="black"
else: color="yellow"
c.config(bg=color)
c.config(state="disabled") # does not work
c=tk.Canvas(w,width=20, height=20, bg=color)
c.place(x=30, y=30)
c.bind("<1>",flip)
答案 0 :(得分:2)
我已经使用其他小部件进行了测试,并注意到将状态设置为禁用不会禁用绑定。在您的情况下,至少有两种解决方案:
通过在<input type="text" value=""<?= $st_data->sp_qty ?>"">
函数末尾的c.config(state="disabled")
替换c.unbind('<1>')
来删除绑定。
在翻转颜色之前检查画布的状态
flip