【问题标题】:Tkinter Canvas bind '<Configure>' event to itemTkinter Canvas 将“<Configure>”事件绑定到项目
【发布时间】:2021-05-29 14:41:15
【问题描述】:

我错过了什么吗?我想我已经做了类似下面例子的事情。 但是我既没有找到我希望的脚本,也没有在网上找到一些东西。 基本上我想将 Configure 事件绑定到一个项目。是不是可能像错误提示的那样?

资源:Canvastag_bind

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()

_tkinter.TclError:请求的非法事件;只能使用键、按钮、动作、进入、离开和虚拟事件

【问题讨论】:

    标签: python tkinter canvas


    【解决方案1】:

    正如错误所说,您无法绑定到 &lt;Configure&gt; 事件,这根本不是一个选项。该事件仅对小部件有效,对画布上绘制的项目无效。

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 1970-01-01
      • 2012-06-13
      • 2011-02-18
      • 2013-08-15
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多