Python Tkinter画布绑定&x27&书信电报;配置>';事件到项目

Python Tkinter画布绑定&x27&书信电报;配置>';事件到项目,python,tkinter,canvas,Python,Tkinter,Canvas,我错过什么了吗?我想我已经做了下面的例子。 但我既没有找到我的剧本,也没有在网上找到任何东西。 基本上,我想将Configure事件绑定到一个项。这不可能像错误所暗示的那样吗 资源:和 将tkinter作为tk导入 def do_something(事件=无): 打印(‘某物’) def愚蠢_解决方法(): 如果cnvs.coords(lbl)!=lbl_坐标: 做某事 cnvs.coords(lbl,*lbl_coords) cnvs.之后(200,愚蠢的解决方案) root=tk.tk()

我错过什么了吗?我想我已经做了下面的例子。 但我既没有找到我的剧本,也没有在网上找到任何东西。 基本上,我想将Configure事件绑定到一个项。这不可能像错误所暗示的那样吗

资源:和

将tkinter作为tk导入
def do_something(事件=无):
打印(‘某物’)
def愚蠢_解决方法():
如果cnvs.coords(lbl)!=lbl_坐标:
做某事
cnvs.coords(lbl,*lbl_coords)
cnvs.之后(200,愚蠢的解决方案)
root=tk.tk()
cnvs=tk。画布(根,highlightthickness=0)
lbl=cnvs.create_text(0,0,text='这是一个示例',anchor='nw')
lbl_coords=cnvs.coords(lbl)
btn=tk.Button(root,text='change coords',command=lambda:cnvs.coords(lbl,10,10))
btn.pack()
愚蠢的解决办法
#cnvs.bind(lbl,,,do#u something)#不会抛出错误
#cnvs.tag_bind(lbl),“do_something”)抛出错误
cnvs.pack()
root.mainloop()
_tkinter.TclError:请求的非法事件;只能使用按键、按钮、动作、进入、离开和虚拟事件


正如错误所说,您不能绑定到
事件,它根本不是一个选项。该事件仅对小部件有效,而对画布上绘制的项目无效

import tkinter as tk

def do_something(event=None):
    print('something')
def stupid_workaround():
    if cnvs.coords(lbl) != lbl_coords:
        do_something()
        cnvs.coords(lbl, *lbl_coords)
    
    cnvs.after(200,stupid_workaround)

root = tk.Tk()
cnvs = tk. Canvas(root,highlightthickness=0)
lbl = cnvs.create_text(0,0, text='this is an exampel', anchor='nw')
lbl_coords = cnvs.coords(lbl)
btn = tk.Button(root, text='change coords', command=lambda:cnvs.coords(lbl,10,10))
btn.pack()
stupid_workaround()
#cnvs.bind(lbl, '<Configure>', do_something) #throws no error
#cnvs.tag_bind(lbl, '<Configure>', do_something) #throws error

cnvs.pack()
root.mainloop()