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

时间:2014-04-01 07:40:44

标签: python tkinter

我试图在plone site中的tkinter中单击图像时得到图像的(x轴,y轴)值。所以每当我点击图像时我需要得到(x轴,y-轴)图像的价值。问题在于我无法获得价值。

我在tkinter.so中在画布上动态创建了图像,当我点击图像时,我需要得到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 :(得分:0)

您对B的定义缺少self参数。你应该像这样编码:

def B(self, event):
    ...

您还设置了错误的绑定。创建绑定时,必须为其提供对函数的引用。你正在做的是调用函数并将该函数的结果赋予绑定。

换句话说,而不是:

canvas.tag_bind(...,self.B())

你应该这样做:

canvas.tag_bind(...,self.B)