python - 画布未绑定到类中的鼠标按钮,tkinter-Python3
问题描述
我一直在尝试将画布绑定到鼠标单击,如this answer中所述,但在一个类中。该callback
函数没有被调用。这里的所有相关 问题似乎都是callback()
在尝试绑定时调用函数,而不是引用它。我正在引用它,但它仍然不起作用。
from tkinter import *
class BindingTrial():
def __init__(self,root,canvas):
self.root = root
self.canvas = canvas
self.canvas.bind("Button-1",self.callback)
def callback(self,event):
print ("clicked at", event.x, event.y)
root = Tk()
canvas= Canvas(root, width=100, height=100)
bt = BindingTrial(root,canvas)
canvas.pack()
root.mainloop()
解决方案
您需要使用 调用按钮绑定"<Button-1>"
,并且回调应接受 self 作为第一个参数。
class BindingTrial():
def __init__(self,root,canvas):
self.root = root
self.canvas = canvas
self.canvas.bind('<Button-1>',self.callback)
def callback(self, event):
print ("clicked at", event.x, event.y)
推荐阅读
- jquery - 禁用 SearchableOptionList
- angular - 产品未在 app.component.html 中列出
- laravel - 控制器上的对象突然变成视图中的数组
- javascript - 使用 JavaScript + CSS 的 Toast 通知在登录页面上无法正常工作(node.js + express + passport + MongoDB)
- python - 使用与用户的 OneToOneField 关系使用 is_authenticated
- r - 条形图未显示每个类别
- jquery - CSS - 如果两个子 div 相互跟随,则为它们设置样式
- mysql - 使用 JOIN 或 UNION 使用来自其他 MariaDB 表的数据的复杂 INSERT 或 UPDATE MariaDB 表
- html - When i hover my icon for make it bigger, my page moving
- reactjs - 将 cors 添加到此代码段以允许所有来源