summaryrefslogtreecommitdiffstats
path: root/Demo/turtle/tdemo_two_canvases.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2014-06-30 20:09:16 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2014-06-30 20:09:16 (GMT)
commitf7f746a82859d94d4f7bee7842e6b28db051554a (patch)
treef6558a7b6041242d18e80d8078826a9d26669a35 /Demo/turtle/tdemo_two_canvases.py
parent04a37be9e55e8f1e6b913bd5ded14533226c13b7 (diff)
downloadcpython-f7f746a82859d94d4f7bee7842e6b28db051554a.zip
cpython-f7f746a82859d94d4f7bee7842e6b28db051554a.tar.gz
cpython-f7f746a82859d94d4f7bee7842e6b28db051554a.tar.bz2
Issue #21882: In turtle demos, remove module scope gui and sys calls by
moving them to the module's main function.
Diffstat (limited to 'Demo/turtle/tdemo_two_canvases.py')
-rw-r--r--Demo/turtle/tdemo_two_canvases.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/Demo/turtle/tdemo_two_canvases.py b/Demo/turtle/tdemo_two_canvases.py
new file mode 100644
index 0000000..d579876
--- /dev/null
+++ b/Demo/turtle/tdemo_two_canvases.py
@@ -0,0 +1,54 @@
+"""turtledemo.two_canvases
+
+Use TurtleScreen and RawTurtle to draw on two
+distinct canvases in a separate windows. The
+new window must be separately closed in
+addition to pressing the STOP button.
+"""
+
+from turtle import TurtleScreen, RawTurtle, TK
+
+def main():
+ root = TK.Tk()
+ cv1 = TK.Canvas(root, width=300, height=200, bg="#ddffff")
+ cv2 = TK.Canvas(root, width=300, height=200, bg="#ffeeee")
+ cv1.pack()
+ cv2.pack()
+
+ s1 = TurtleScreen(cv1)
+ s1.bgcolor(0.85, 0.85, 1)
+ s2 = TurtleScreen(cv2)
+ s2.bgcolor(1, 0.85, 0.85)
+
+ p = RawTurtle(s1)
+ q = RawTurtle(s2)
+
+ p.color("red", (1, 0.85, 0.85))
+ p.width(3)
+ q.color("blue", (0.85, 0.85, 1))
+ q.width(3)
+
+ for t in p,q:
+ t.shape("turtle")
+ t.lt(36)
+
+ q.lt(180)
+
+ for t in p, q:
+ t.begin_fill()
+ for i in range(5):
+ for t in p, q:
+ t.fd(50)
+ t.lt(72)
+ for t in p,q:
+ t.end_fill()
+ t.lt(54)
+ t.pu()
+ t.bk(50)
+
+ return "EVENTLOOP"
+
+
+if __name__ == '__main__':
+ main()
+ TK.mainloop() # keep window open until user closes it