Change the on-screen position of the Turtle Graphics window?

Is it possible to change the position of the turtle console on screen?

My main objective is to write code that can move the window, that's all.

I'm using Python 3.4.0 under Windows 10.

If any extra information is needed please ask.

Upvotes: 1

Views: 7314

Answers (2)

cdlane
cdlane

Reputation: 41925

Why do folks always jump into tkinter before reading the turtle documentation?

Yes, you can set the screen position of the turtle graphics window using the same setup() method you use to size it:

from turtle import Turtle, Screen

def animate():
    global offset

    screen.setup(width=0.333, height=0.333, startx=offset, starty=offset)

    turtle.dot(offset)

    offset += 10

    if offset < 300:
        screen.ontimer(animate, 100)

screen = Screen()

turtle = Turtle()

offset = 30

animate()

screen.exitonclick()

startx, if positive, is the starting position in pixels from the left edge of the screen, or from the right edge if negative. Similarly, starty, if positive, is the starting position from the top edge of the screen, or from the bottom edge if negative. By default, the window is centered on the screen.

Your title asks about the position of the Turtle Graphics window on the screen but the body of your question asks about the Turtle Console. These might be considered two different windows.

My main objective is to write code that can move the window

I can't tell if you just want to set the initial position of the window or actually move the window around the screen so I rewrote my example to demonstrate the later.

Upvotes: 3

PM 2Ring
PM 2Ring

Reputation: 55509

Yes. You need to get the root window that contains the Tkinter Canvas that the turtle is using as its TurtleScreen. Once you have that window you can change its geometry.

Here's a simple demo.

import turtle

turtle.setup(width=0.5, height=0.5)
screen = turtle.Screen()

width, height = screen.window_width(), screen.window_height()
canvas = screen.getcanvas()

left, top = 30, 100
geom = '{}x{}+{}+{}'.format(width, height, left, top)
canvas.master.geometry(geom)

t = turtle.Turtle()
turtle.exitonclick()

Upvotes: 1

Related Questions