home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Demo / tkinter / matt / printing-coords-of-items.py < prev    next >
Text File  |  1996-07-30  |  2KB  |  65 lines

  1. from Tkinter import *
  2.  
  3. # this file demonstrates the creation of widgets as part of a canvas object
  4.  
  5. class Test(Frame):
  6.     ###################################################################
  7.     ###### Event callbacks for THE CANVAS (not the stuff drawn on it)
  8.     ###################################################################
  9.     def mouseDown(self, event):
  10.     # see if we're inside a dot. If we are, it
  11.     # gets tagged as CURRENT for free by tk.
  12.  
  13.     if not event.widget.find_withtag(CURRENT):
  14.         # there is no dot here, so we can make one,
  15.         # and bind some interesting behavior to it.
  16.         # ------
  17.         # create a dot, and mark it as current
  18.         fred = self.draw.create_oval(
  19.         event.x - 10, event.y -10, event.x +10, event.y + 10,
  20.         fill="green")
  21.         self.draw.tag_bind(fred, "<Enter>", self.mouseEnter)
  22.         self.draw.tag_bind(fred, "<Leave>", self.mouseLeave)
  23.     self.lastx = event.x
  24.     self.lasty = event.y
  25.  
  26.     def mouseMove(self, event):
  27.     self.draw.move(CURRENT, event.x - self.lastx, event.y - self.lasty)
  28.     self.lastx = event.x
  29.     self.lasty = event.y
  30.  
  31.     ###################################################################
  32.     ###### Event callbacks for canvas ITEMS (stuff drawn on the canvas)
  33.     ###################################################################
  34.     def mouseEnter(self, event):
  35.         # the "current" tag is applied to the object the cursor is over.
  36.     # this happens automatically.
  37.     self.draw.itemconfig(CURRENT, fill="red")
  38.     print self.draw.coords(CURRENT)
  39.     
  40.     def mouseLeave(self, event):
  41.     # the "current" tag is applied to the object the cursor is over.
  42.     # this happens automatically.
  43.     self.draw.itemconfig(CURRENT, fill="blue")
  44.  
  45.     def createWidgets(self):
  46.     self.QUIT = Button(self, text='QUIT', foreground='red',
  47.                command=self.quit)
  48.     self.QUIT.pack(side=LEFT, fill=BOTH)    
  49.     self.draw = Canvas(self, width="5i", height="5i")
  50.     self.draw.pack(side=LEFT)
  51.  
  52.     Widget.bind(self.draw, "<1>", self.mouseDown)
  53.     Widget.bind(self.draw, "<B1-Motion>", self.mouseMove)
  54.  
  55.     def __init__(self, master=None):
  56.     Frame.__init__(self, master)
  57.     Pack.config(self)
  58.     self.createWidgets()
  59.  
  60. test = Test()
  61. test.mainloop()
  62.  
  63.  
  64.  
  65.