Python Canvas:函数在没有被调用的情况下运行

时间:2013-07-19 04:04:21

标签: python events

我开始在Python中使用Canvas对象。 我创造了以下简单的工作:意图是一个蓝色三角形,当双击时,变成黄色。 相反,它从一开始就是黄色的。我做错了什么?

#!/usr/bin/python
from Tkinter import *

def Yellow():
    canv.itemconfigure(obj,fill='yellow')

root=Tk()
canv=Canvas(root,width=200,height=200)
obj=canv.create_polygon(100,100,120,120,120,80,fill='blue')
canv.tag_bind(obj,'<Double-1>',Yellow())
canv.pack()
root.mainloop()

1 个答案:

答案 0 :(得分:2)

在代码行中

canv.tag_bind(obj,'<Double-1>',Yellow())

表达式Yellow()调用名为Yellow的函数。为了简单地引用一个函数(比如将它绑定到一个事件)而不是调用它,你应该只写Yellow。所以你的代码应该改为阅读

canv.tag_bind(obj,'<Double-1>',Yellow)