Merge with 3.4

This commit is contained in:
Terry Jan Reedy 2014-06-24 22:21:56 -04:00
commit 5827da3f9f
7 changed files with 60 additions and 48 deletions

View File

@ -53,22 +53,28 @@
(2) How to add your own demos to the demo repository
- place: same directory as turtledemo/__main__.py
- Place the file in the same directory as turtledemo/__main__.py
- requirements on source code:
code must contain a main() function which will
be executed by the viewer (see provided example scripts)
main() may return a string which will be displayed
in the Label below the source code window (when execution
has finished.)
- 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.)
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!
- In order to run mydemo.py by itself, such as during development,
add the following at the end of the file:
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.)
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.)

View File

@ -3,12 +3,12 @@
tdemo_forest.py
Displays a 'forest' of 3 'breadth-first-trees'
similar to the one from example tree.
For further remarks see xtx_tree.py
Displays a 'forest' of 3 breadth-first-trees
similar to the one in tree.
For further remarks see tree.py
This example is a 'breadth-first'-rewrite of
a Logo program written by Erich Neuwirth. See:
a Logo program written by Erich Neuwirth. See
http://homepage.univie.ac.at/erich.neuwirth/
"""
from turtle import Turtle, colormode, tracer, mainloop
@ -104,6 +104,5 @@ def main():
return "runtime: %.2f sec." % (b-a)
if __name__ == '__main__':
msg = main()
print(msg)
main()
mainloop()

View File

@ -3,11 +3,15 @@
tdemo_paint.py
A simple eventdriven paint program
A simple event-driven paint program
- use left mouse button to move turtle
- middle mouse button to change color
- right mouse button do turn filling on/off
- left mouse button moves turtle
- middle mouse button changes color
- right mouse button toogles betweem pen up
(no line drawn when the turtle moves) and
pen down (line is drawn). If pen up follows
at least two pen-down moves, the polygon that
includes the starting point is filled.
-------------------------------------------
Play around by clicking into the canvas
using all three mouse buttons.

View File

@ -3,14 +3,10 @@
tdemo_peace.py
A very simple drawing suitable as a beginner's
programming example.
Uses only commands, which are also available in
old turtle.py.
Intentionally no variables are used except for the
colorloop:
A simple drawing suitable as a beginner's
programming example. Aside from the
peacecolors assignment and the for loop,
it only uses turtle commands.
"""
from turtle import *
@ -21,7 +17,7 @@ def main():
"royalblue1", "dodgerblue4")
reset()
s = Screen()
Screen()
up()
goto(-320,-195)
width(70)
@ -58,7 +54,7 @@ def main():
up()
goto(0,300) # vanish if hideturtle() is not available ;-)
return "Done!!"
return "Done!"
if __name__ == "__main__":
main()

View File

@ -12,9 +12,9 @@ very light moon!
Planet has a circular orbit, moon a stable
orbit around the planet.
You can hold the movement temporarily by pressing
the left mouse button with mouse over the
scrollbar of the canvas.
You can hold the movement temporarily by
pressing the left mouse button with the
mouse over the scrollbar of the canvas.
"""
from turtle import Shape, Turtle, mainloop, Vec2D as Vec
@ -108,6 +108,5 @@ def main():
return "Done!"
if __name__ == '__main__':
msg = main()
print(msg)
#mainloop()
main()
mainloop()

View File

@ -11,9 +11,9 @@ Uses:
(1) a tree-generator, where the drawing is
quasi the side-effect, whereas the generator
always yields None.
(2) Turtle-cloning: At each branching point the
current pen is cloned. So in the end there
are 1024 turtles.
(2) Turtle-cloning: At each branching point
the current pen is cloned. So in the end
there are 1024 turtles.
"""
from turtle import Turtle, mainloop
from time import clock

View File

@ -1,8 +1,16 @@
#!/usr/bin/env python3
## DEMONSTRATES USE OF 2 CANVASES, SO CANNOT BE RUN IN DEMOVIEWER!
"""turtle example: Using TurtleScreen and RawTurtle
for drawing on two distinct canvases.
"""turtledemo.two_canvases
Use TurtleScreen and RawTurtle to draw on two
distinct canvases.
"""
#The final mainloop only serves to keep the window open.
#TODO: This runs in its own two-canvas window when selected in the
#demoviewer examples menu but the text is not loaded and the previous
#example is left visible. If the ending mainloop is removed, the text
#Eis loaded, this run again in a third window, and if start is pressed,
#demoviewer raises an error because main is not found, and then freezes.
from turtle import TurtleScreen, RawTurtle, TK
root = TK.Tk()