Не понимаю причину этого AttributeError: у объекта '_Screen' нет атрибута 'setimage' - PullRequest
1 голос
/ 15 марта 2019

Код, который у меня есть:

import time
import turtle
from turtle import *
from random import randint

#GUI options
screen = turtle.Screen()
screen.setup(1000,1000)
screen.setimage("eightLane.jpg")
title("RACING TURTLES")

Появляется сообщение об ошибке:

Traceback (most recent call last):   File
"/Users/bradley/Desktop/SDD/coding term 1 year 11/8 lane
experementaiton.py", line 14, in <module>
    screen.setimage("eightLane.jpg") AttributeError: '_Screen' object has no attribute 'setimage'

Любой совет полезен.

1 Ответ

0 голосов
/ 15 марта 2019

Чтобы сделать то, что вы хотите, требуется довольно сложный обходной путь (на самом деле два из них), потому что он требует использования модуля tkinter для выполнения его части (потому что это то, что модуль turtle -graphics использует внутри для создания своей графики ), и turtle не имеет метода с именем setscreen(), как вы обнаружили через AttributeError.

Сложность имеет значение, модуль tkinter не поддерживает .jpg. форматирования изображений, поэтому для преодоления этого ограничения необходим еще один обходной путь, который требует также использования PIL (Python Imaging Library) для преобразования изображения в формат, поддерживаемый tkinter.

from PIL import Image, ImageTk
from turtle import *
import turtle

# GUI options
screen = turtle.Screen()
screen.setup(1000, 1000)

pil_img = Image.open("eightLane.jpg")  # Use PIL to open .jpg image.
tk_img = ImageTk.PhotoImage(pil_img)  # Convert it into something tkinter can use.

canvas = turtle.getcanvas()  # Get the tkinter Canvas of this TurtleScreen.
# Create a Canvas image object holding the tkinter image.
img_obj_id = canvas.create_image(0, 0, image=tk_img, anchor='center')

title("RACING TURTLES")

input('press Enter')  # Pause before continuing.
...