不明白这个AttributeError的原因:'_ Screen'对象没有属性'setimage'

问题描述 投票:1回答:1

我的代码是:

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'

任何建议都有帮助。

python image turtle-graphics appjar
1个回答
0
投票

要做你想做的事需要一个相当复杂的解决方法(实际上有两个),因为它需要使用tkinter模块来做它的一部分(因为这是turtle-graphics模块在内部使用它来做图形),而turtle没有正如你通过setscreen()发现的那样,有一个名为AttributeError的方法。

更复杂的是,tkinter模块不支持.jpg。格式化图像,因此需要另一种解决方法来克服该限制,这需要还需要使用PIL(Python成像库)将图像转换为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.
© www.soinside.com 2019 - 2024. All rights reserved.