mirror of https://github.com/python/cpython
84 lines
2.9 KiB
Plaintext
84 lines
2.9 KiB
Plaintext
|
|
|
|
----------------------------------------------
|
|
|
|
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.)
|