mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
 | 
						|
 | 
						|
  ----------------------------------------------
 | 
						|
 | 
						|
      turtleDemo - Help
 | 
						|
 | 
						|
  ----------------------------------------------
 | 
						|
 | 
						|
  This document has two sections:
 | 
						|
 | 
						|
  (1) How to use the demo viewer
 | 
						|
  (2) How to add your own demos to the demo repository
 | 
						|
 | 
						|
 | 
						|
  (1) How to use the demo viewer.
 | 
						|
 | 
						|
  Select a demoscript from the example menu.
 | 
						|
  The (syntax coloured) source code appears in the left
 | 
						|
  source code window. IT CANNOT BE EDITED, but ONLY VIEWED!
 | 
						|
 | 
						|
  - Press START button to start the demo.
 | 
						|
  - Stop execution by pressing the STOP button.
 | 
						|
  - Clear screen by pressing the CLEAR button.
 | 
						|
  - Restart by pressing the START button again.
 | 
						|
 | 
						|
  SPECIAL demos are those which run EVENTDRIVEN.
 | 
						|
  (For example clock.py - or oldTurtleDemo.py which
 | 
						|
  in the end expects a mouse click.):
 | 
						|
 | 
						|
      Press START button to start the demo.
 | 
						|
 | 
						|
      - Until the EVENTLOOP is entered everything works
 | 
						|
      as in an ordinary demo script.
 | 
						|
 | 
						|
      - When the EVENTLOOP is entered, you control the
 | 
						|
      application by using the mouse and/or keys (or it's
 | 
						|
      controlled by some timer events)
 | 
						|
      To stop it you can and must press the STOP button.
 | 
						|
 | 
						|
      While the EVENTLOOP is running, the examples menu is disabled.
 | 
						|
 | 
						|
      - Only after having pressed the STOP button, you may
 | 
						|
      restart it or choose another example script.
 | 
						|
 | 
						|
   * * * * * * * *
 | 
						|
   In some rare situations there may occur interferences/conflicts
 | 
						|
   between events concerning the demo script and those concerning the
 | 
						|
   demo-viewer. (They run in the same process.) Strange behaviour may be
 | 
						|
   the consequence and in the worst case you must close and restart the
 | 
						|
   viewer.
 | 
						|
   * * * * * * * *
 | 
						|
 | 
						|
 | 
						|
   (2) How to add your own demos to the demo repository
 | 
						|
 | 
						|
   - Place the file in the same directory as turtledemo/__main__.py
 | 
						|
     IMPORTANT! When imported, the demo should not modify the system
 | 
						|
     by calling functions in other modules, such as sys, tkinter, or
 | 
						|
     turtle. Global variables should be initialized in main().
 | 
						|
 | 
						|
   - The code must contain a main() function which will
 | 
						|
     be executed by the viewer (see provided example scripts).
 | 
						|
     It may return a string which will be displayed in the Label below
 | 
						|
     the source code window (when execution has finished.)
 | 
						|
 | 
						|
   - In order to run mydemo.py by itself, such as during development,
 | 
						|
     add the following at the end of the file:
 | 
						|
 | 
						|
    if __name__ == '__main__':
 | 
						|
        main()
 | 
						|
        mainloop()  # keep window open
 | 
						|
 | 
						|
    python -m turtledemo.mydemo  # will then run it
 | 
						|
 | 
						|
   - If the demo is EVENT DRIVEN, main must return the string
 | 
						|
     "EVENTLOOP". This informs the demo viewer that the script is
 | 
						|
     still running and must be stopped by the user!
 | 
						|
 | 
						|
     If an "EVENTLOOP" demo runs by itself, as with clock, which uses
 | 
						|
     ontimer, or minimal_hanoi, which loops by recursion, then the
 | 
						|
     code should catch the turtle.Terminator exception that will be
 | 
						|
     raised when the user presses the STOP button.  (Paint is not such
 | 
						|
     a demo; it only acts in response to mouse clicks and movements.)
 |