我试图在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
帮我解决这个问题。谢谢。
答案 0 :(得分:0)
您对B
的定义缺少self
参数。你应该像这样编码:
def B(self, event):
...
您还设置了错误的绑定。创建绑定时,必须为其提供对函数的引用。你正在做的是调用函数并将该函数的结果赋予绑定。
换句话说,而不是:
canvas.tag_bind(...,self.B())
你应该这样做:
canvas.tag_bind(...,self.B)