所以我试图在屏幕上绘制一些文本,每次我按下图形屏幕时,它都会变得无响应。当我尝试通过添加主循环来修复它时,它不会继续其余代码。我在应该添加的地方看到
done()
在块的末尾,但 python 说它不存在,我尝试放置 turtle.done(( 但什么都没有。
这是代码:
def draw_robot(choice_robot,robots):
stats = robots[choice_robot]
style = 'Arial',14,'bold'
t.setheading(-90)
t.write('Name: '+choice_robot,font=style,align = 'center')
t.forward(25)
t.write('Battery: '+stats[0],font=style,align = 'center')
t.forward(25)
t.write('Intelligence: '+stats[1],font=style,align = 'center')
turtle.mainloop()
我该如何解决这个问题?
turtle.mainloop()
不应出现在子例程中。 一般来说,它应该是在一页代码上执行的最后一件事。 即,要么字面意思是最后一个语句,要么是main()
例程所做的最后一件事。 它将控制权移交给 tkinter 的事件处理程序,其中与 turtle 的所有交互都是通过事件(击键、鼠标移动等(进行的。
以下是我期望如何制定适当的海龟计划:
from turtle import Turtle, Screen # force Object-oriented interface
STYLE = ('Arial', 14, 'bold')
def draw_robot(choice_robot, robots):
stats = robots[choice_robot]
t.setheading(-90)
t.write('Name: ' + choice_robot, font=STYLE, align='center')
t.forward(25)
t.write('Battery: ' + stats[0], font=STYLE, align='center')
t.forward(25)
t.write('Intelligence: ' + stats[1], font=STYLE, align='center')
screen = Screen()
t = Turtle()
my_choice_robot = None # whatever ...
my_robots = None # whatever ...
draw_robot(my_choice_robot, my_robots)
screen.mainloop()