如何在tkinter中点击图像时获取图像的x轴、y轴值

0 投票
1 回答
822 浏览
提问于 2025-04-18 00:48

我在一个使用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)

撰写回答