python - Tkinter 画布绑定'' 事件到项目
问题描述
我错过了什么吗?我想我已经做了类似下面例子的事情。但是我既没有找到我希望的脚本,也没有在网上找到一些东西。基本上我想将Configure事件绑定到一个项目。是不是可能像错误提示的那样?
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:请求的非法事件;只能使用键、按钮、动作、进入、离开和虚拟事件
解决方案
就像错误说的那样,你不能绑定到<Configure>
事件,它根本不是一个选项。该事件仅对小部件有效,对画布上绘制的项目无效。
推荐阅读
- c - C - if 语句系列 vs else if 时间测量
- java - 如何在不同位置的两台笔记本电脑之间建立连接
- ios - 使用来自 Node Js 的 Ionic 3/Cordova iOS 应用在 iPhone 中播放视频(来自流媒体),无需太多时间加载
- ms-access - 在 MS Access 中过滤包含字符串的日期列
- html - 按钮悬停动画背景颜色未完全填充
- jquery - 即使切换课程,背景图像也会保留
- php - PHP VoltDB 客户端库安装
- spring-boot - 带有ssl的spring boot kafka,错误发送消息
- cordova - 启动时显示离子徽标的启动画面与我的启动画面
- ios - 使用工具栏启动 iPhone 相机应用程序