7 def createWidgets(self
):
8 self
.QUIT
= Button(self
, text
='QUIT',
13 self
.QUIT
.pack(side
=BOTTOM
, fill
=BOTH
)
15 self
.canvasObject
= Canvas(self
, width
="5i", height
="5i")
16 self
.canvasObject
.pack(side
=LEFT
)
18 def mouseDown(self
, event
):
19 # canvas x and y take the screen coords from the event and translate
20 # them into the coordinate system of the canvas object
21 self
.startx
= self
.canvasObject
.canvasx(event
.x
)
22 self
.starty
= self
.canvasObject
.canvasy(event
.y
)
24 def mouseMotion(self
, event
):
25 # canvas x and y take the screen coords from the event and translate
26 # them into the coordinate system of the canvas object
27 x
= self
.canvasObject
.canvasx(event
.x
)
28 y
= self
.canvasObject
.canvasy(event
.y
)
30 if (self
.startx
!= event
.x
) and (self
.starty
!= event
.y
) :
31 self
.canvasObject
.delete(self
.rubberbandLine
)
32 self
.rubberbandLine
= self
.canvasObject
.create_line(
33 self
.startx
, self
.starty
, x
, y
)
34 # this flushes the output, making sure that
35 # the rectangle makes it to the screen
36 # before the next event is handled
37 self
.update_idletasks()
39 def __init__(self
, master
=None):
40 Frame
.__init
__(self
, master
)
43 # this is a "tagOrId" for the rectangle we draw on the canvas
44 self
.rubberbandLine
= None
45 Widget
.bind(self
.canvasObject
, "<Button-1>", self
.mouseDown
)
46 Widget
.bind(self
.canvasObject
, "<Button1-Motion>", self
.mouseMotion
)