mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			61 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | """"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() |