龟图形屏幕无响应

时间:2018-08-22 12:39:34

标签: python graphics turtle-graphics

因此,我试图在屏幕上绘制一些文本,并且每当我按一下Turtle图形屏幕时,它都将变得无响应。当我尝试通过添加mainloop来修复它时,它将不会继续其余的代码。我看到应该添加的地方

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()

我该如何解决?

1 个答案:

答案 0 :(得分:0)

turtle.mainloop()不应出现在子例程中。通常,它应该是在龟代码页面上执行的最后一件事。即,实际上是main()例程所做的最后一条语句或最后一件事情。它将控制权交给tkinter的事件处理程序,在那里与乌龟的所有交互都是通过事件(按键,鼠标移动等)进行的。

以下大致是我期望如何布置适当的海龟程序的方式:

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()