python - tag_bind() 不适用于重叠的画布
问题描述
我正在创建一个教学环境,用户可以从下拉菜单中选择某些选项,例如相机或白板,这些选项作为带有自己对象的新画布添加到 GUI 中。这些对象通过左键单击使用 tag_bind 进行绑定,但是在单击时,该函数不会运行。
我尝试使用 tag_bind 与主画布进行绑定,但是由于对象是使用它自己的画布创建的,因此它无法找到该对象。
from tkinter import *
root = Tk()
screen_width = root.winfo_screenwidth() - 15
screen_height = root.winfo_screenheight()
canvas = Canvas(root, width = screen_width, height = screen_height)
canvas.pack()
def add_item(event, remove):#this is the drop down menu
dropbackground = canvas.create_rectangle(screen_width - 185, 70, screen_width - 55, 280, fill = "white")
camera = canvas.create_text(screen_width - 120,85, text = "Camera", font = ("Segoe UI", 9))
canvas.tag_bind(camera, "<Button-1>", lambda x: camera_func(x, False))
line1 = canvas.create_line(screen_width - 170, 100, screen_width - 70, 100)
def camera_func(event):
cam_canvas = Canvas(root, width = 500, height = 500, bg = "red")
cam_canvas_object = canvas.create_window(500,500, window = cam_canvas)
remove_button = PhotoImage(file = "cross.png")
remove_button_object = cam_canvas.create_image(480,20, image = remove_button)
remove_button.image = remove_button
cam_canvas.tag_bind(remove_button_object, "<Button-1>", lambda x: camera_func(x, True))
我希望 remove_button_object 绑定到右键单击并使用给定的参数运行 camera_func 但是在单击 remove_button_object 时,绑定功能似乎不起作用
解决方案
推荐阅读
- android - Android:如何覆盖相同语言的几个字符串
- css - 如果 SCSS 中对具有属性的元素的语句等于 true?
- loops - .htaccess mod_rewrite 未按预期工作(重定向到文件夹)
- google-cloud-platform - Velostrata 从本地迁移到 GCP。错误日志:echo boot 失败,等待磁盘联机
- python - 检查数据框值 +/- 1 是否存在于给定列中的其他任何位置
- aws-lambda - 来自 Api Gatway 的带参数的异步 Lambda 调用
- roslyn - Roslyn - 将编辑的文档保存到物理解决方案
- android - 在传递依赖项之前,我怎么能不能构造它们?
- python - Python - 在 Django 2 中创建多种用户类型和电子邮件作为用户名字段
- python - 在 PyWeka 中使用包(Python Weka Wrapper)