| ---------------------------------------------- | |
| 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 colored) 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 | |
| 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 script name must begin with tdemo_ , | |
| so it must have the form tdemo_<your-script-name>.py | |
| - 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 | |
| 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.) |