【问题标题】:Python 2.7.13 turtle onkey function does not workPython 2.7.13 龟 onkey 功能不起作用
【发布时间】:2018-07-22 15:04:35
【问题描述】:

我编写了一个程序,我想在其中使用onkey() 功能,但它不起作用,就像我的键盘上没有一个键一样:

from turtle import*
import sys
s=Screen()
s.setup(500,500)
s.title("title")
x=Turtle(shape=image)
def e1():
    print("hello")
    s.bye()

def k1():
    x.fd(40)
def k2():
    x.lt(90)
def k3():
    x.rt(90)
def k4():
    x.bk(20)
s.onkey(e1,"Escape")
s.onkey(k1,"w")
s.onkey(k2,"a")
s.onkey(k3,"s")
s.onkey(k4,"z")
s.listen()

【问题讨论】:

    标签: python python-2.7 turtle-graphics


    【解决方案1】:

    这也发生在我身上。我发现在 Spyder IDE 中,您需要先导入“mainloop”,最后调用它,正如 cdlane 上面所说的那样;现在代码可以工作了!

    from turtle import Turtle, Screen, mainloop  
    
    tim = Turtle()
    screen = Screen()
    
    def move_forwards():
        tim.forward(10)
    
    screen.listen() 
    screen.onkeypress(fun = move_forwards, key = "space") 
    mainloop()
    

    【讨论】:

      【解决方案2】:

      除了缺少 image 变量外,您的代码在 Python 2.7.10 下适用于我——我对您的代码进行了修改:

      from turtle import Turtle, Screen, mainloop
      
      def e1():
          print("goodbye")
          screen.bye()
      
      def k1():
          turtle.forward(40)
      
      def k2():
          turtle.left(90)
      
      def k3():
          turtle.right(90)
      
      def k4():
          turtle.backward(20)
      
      screen = Screen()
      screen.setup(500, 500)
      screen.title("title")
      
      turtle = Turtle(shape="turtle")
      
      screen.onkey(e1, "Escape")
      screen.onkey(k1, "w")
      screen.onkey(k2, "a")
      screen.onkey(k3, "s")
      screen.onkey(k4, "z")
      
      screen.listen()
      mainloop()
      

      一种可能性是您在尝试使用键盘之前没有单击海龟图形窗口。您需要通过单击使海龟窗口成为活动侦听器,然后它应该响应键盘。如果您的击键显示在控制台窗口中,则很可能是这种情况。

      如果您的代码不以 mainloop() 或等价物结尾,另一种可能性是您在 IDLE 之类的环境下运行,而您没有提及这可能会影响您的键盘输入事件。

      【讨论】:

      • 非常感谢先生/妈妈,它现在可以工作了。我和我的老师一直在研究它,因为我朋友的笔记本电脑也是如此。但我很高兴它的工作,再次感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多