如何在tkinter中点击图像时获取图像的x轴、y轴值
我在一个使用tkinter的plone网站上,想要在点击图片时获取图片的(x轴, y轴)坐标值。所以每当我点击图片时,我需要得到这个坐标值。问题是我无法获取到这些值。
我是在tkinter的画布上动态创建了图片。所以当我点击图片时,我需要获取到x轴和y轴的坐标值。下面我会详细解释我的代码。
class A(BrowserView):
def B(event):
x = event.x
y = event.y
def C(self):
root = Tk()
canvas = Canvas(width = 200, height = 250, bg = 'white')
canvas.pack(expand = 'NO', fill = BOTH)
gif1 = ImageTk.PhotoImage(file = 'image1.png')
D=canvas.create_image(50,50, image = gif1, anchor = NW)
canvas.tag_bind(D, '<ButtonPress-1>',self.B()) #it will trigger the method B
canvas.pack()
我遇到了如下的错误
AttributeError: 'C' object has no attribute 'x'
x = event.x #get x-axis value
请帮我解决这个问题。提前谢谢你。
1 个回答
0
你对 B
的定义缺少了 self
参数。你应该这样写:
def B(self, event):
...
你设置绑定的方式也不对。当你创建一个绑定时,必须给它一个函数的引用。你现在做的是调用这个函数,然后把函数的结果给绑定。
换句话说,不应该这样:
canvas.tag_bind(...,self.B())
你应该这样做:
canvas.tag_bind(...,self.B)