]> granicus.if.org Git - python/commitdiff
Paint demo by Dave Mitchell. There's clearly a demand for such a
authorGuido van Rossum <guido@python.org>
Mon, 26 Jan 1998 16:47:30 +0000 (16:47 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 26 Jan 1998 16:47:30 +0000 (16:47 +0000)
demo, so here it is.

Demo/tkinter/guido/paint.py [new file with mode: 0644]

diff --git a/Demo/tkinter/guido/paint.py b/Demo/tkinter/guido/paint.py
new file mode 100644 (file)
index 0000000..743d500
--- /dev/null
@@ -0,0 +1,60 @@
+""""Paint program by Dave Michell.
+
+Subject: tkinter "paint" example
+From: Dave Mitchell <davem@magnet.com>
+To: python-list@cwi.nl
+Date: Fri, 23 Jan 1998 12:18:05 -0500 (EST)
+
+  Not too long ago (last week maybe?) someone posted a request
+for an example of a paint program using Tkinter. Try as I might
+I can't seem to find it in the archive, so i'll just post mine
+here and hope that the person who requested it sees this!
+
+  All this does is put up a canvas and draw a smooth black line
+whenever you have the mouse button down, but hopefully it will
+be enough to start with.. It would be easy enough to add some 
+options like other shapes or colors...
+
+                                               yours,
+                                               dave mitchell
+                                               davem@magnet.com
+"""
+
+from Tkinter import *
+
+"""paint.py: not exactly a paint program.. just a smooth line drawing demo."""
+
+b1 = "up"
+xold, yold = None, None
+
+def main():
+  root = Tk()
+  drawing_area = Canvas(root)
+  drawing_area.pack()
+  drawing_area.bind("<Motion>", motion)
+  drawing_area.bind("<ButtonPress-1>", b1down)
+  drawing_area.bind("<ButtonRelease-1>", b1up)
+  root.mainloop()
+
+def b1down(event):
+  global b1
+  b1 = "down"          # you only want to draw when the button is down
+                       # because "Motion" events happen -all the time-
+
+def b1up(event):
+  global b1, xold, yold
+  b1 = "up"
+  xold = None          # reset the line when you let go of the button
+  yold = None
+
+def motion(event):
+  if b1 == "down":
+    global xold, yold
+    if xold != None and yold != None:
+      event.widget.create_line(xold,yold,event.x,event.y,smooth=TRUE)
+                       # here's where you draw it. smooth. neat.
+    xold = event.x
+    yold = event.y
+
+if __name__ == "__main__":
+  main()