以下是http://www.python-course.eu/tkinter_canvas.php的一些代码:
canvas_height = 150
def paint( event ):
python_green = "#476042"
x1, y1 = ( event.x - 1 ), ( event.y - 1 )
x2, y2 = ( event.x + 1 ), ( event.y + 1 )
w.create_oval( x1, y1, x2, y2, fill = python_green )
master = Tk()
master.title( "Painting using Ovals" )
w = Canvas(master,
width=canvas_width,
height=canvas_height)
w.pack(expand = YES, fill = BOTH)
w.bind( "", paint )
message = Label( master, text = "Press and Drag the mouse to draw" )
message.pack( side = BOTTOM )
mainloop()
它应该创建一个绘画应用程序,但我收到了一个错误:
_tkinter.TclError: no events specified in binding
答案 0 :(得分:3)
您需要指定一个事件名称作为bind
的第一个参数。如果要在用户拖动光标的任何地方绘制圆圈,请尝试B1-Motion。
w.bind("<B1-Motion>", paint)
我不知道为什么教程将该参数留空。空字符串不是有效的事件名称。我猜他们打算稍后填写,但忘记了。
答案 1 :(得分:0)
您需要添加一个事件。您可以在这些页面上查看Tkinter Events and Binds选项