Использование small windows в черепахе - это банка с червями. Если простое решение @ TheOneMusi c (+1) достаточно для ваших целей, go для него! В моей системе ваш вызов setworldcoordinates()
избавляется от полос прокрутки, поэтому я даже не вижу проблемы. Таким образом, другим приблизительным решением может быть обновление до текущих Python и tkinter.
Однако ни то, ни другое не является точным решением. Если мы добавим код для рисования прямоугольника размером 200 x 200 вокруг нашей области рисования:
t.penup()
t.color('red')
t.goto(0, 0) # because of setworldcoordinates()
t.pendown()
for _ in range(4):
t.forward(200)
t.left(90)
Мы получим перекос прямоугольника:
Для более точного решения этой проблемы используется более уродливый код:
from turtle import Screen, Turtle
from random import randint
TRUE_WIDTH, TRUE_HEIGHT = 200, 200
CURSOR_SIZE = 20 # for drawing frame around edge
RADIUS = 20
CHROME = 14 # magic number possibly derivable from tkinter
width, height = TRUE_WIDTH + CHROME, TRUE_HEIGHT + CHROME # needs to be slightly larger than 200 target
offset_x = CHROME / -2 + 2
offset_y = CHROME / 2 - 2
screen = Screen()
screen.setup(width, height)
screen.screensize(width/2, height/2) # backing store needs to be smaller than window
screen.setworldcoordinates(0, 0, TRUE_WIDTH, TRUE_HEIGHT)
# Draw red frame around edge to "prove" drawing area
frame = Turtle(shape='square', visible=False)
frame.shapesize(TRUE_HEIGHT / CURSOR_SIZE, TRUE_WIDTH / CURSOR_SIZE) # 200 x 200 frame
frame.color('red', 'white')
frame.penup()
frame.goto(TRUE_WIDTH/2 + offset_x, TRUE_HEIGHT/2 + offset_y)
frame.stamp()
turtle = Turtle()
turtle.speed('fastest') # because I have no patience
for _ in range(5):
turtle.penup()
turtle.goto(randint(RADIUS, TRUE_WIDTH - RADIUS) + offset_x, randint(0, TRUE_HEIGHT - RADIUS*2) + offset_y)
turtle.pendown()
turtle.circle(RADIUS)
screen.exitonclick()
Но такая детальная работа может быть легко отменена в будущем. выпуск черепахи и / или tkinter. Если вы можете жить с окном черепахи по умолчанию, жизнь станет проще.