在python中使用tkinter的画家示例

时间:2014-11-13 18:19:40

标签: python tkinter

以下是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

2 个答案:

答案 0 :(得分:3)

您需要指定一个事件名称作为bind的第一个参数。如果要在用户拖动光标的任何地方绘制圆圈,请尝试B1-Motion。

w.bind("<B1-Motion>", paint)

我不知道为什么教程将该参数留空。空字符串不是有效的事件名称。我猜他们打算稍后填写,但忘记了。

答案 1 :(得分:0)

您需要添加一个事件。您可以在这些页面上查看Tkinter Events and Binds选项