Python 3.0 使用 turtle.onclick

新手上路,请多包涵

所以这就是我的问题,我必须为我的 CS 类制作图片,这在 turtle 中进行估算真的很令人沮丧。我计划使用 .onclick() 来显示我的位置。

 import turtle as t
def getPos(x,y):
    print("(", x, "," ,y,")")
    return

def main():
    t.onclick(getPos)
    t.mainloop()
main()

turtle 文档似乎说 onclick 将在接受两个变量的函数中传递坐标。

http://docs.python.org/3.1/library/turtle.html#turtle.onclick

注意:当我点击箭头时它会起作用,但这不是我想要的。我想点击屏幕上的其他位置来找出我应该将箭头发送到的坐标!

任何帮助,将不胜感激。

原文由 Shaw 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 585
2 个回答

好吧,我想出了一个解决办法。它不是一个完美的解决方案,但效果很好。因为只有在单击箭头时 onclick 才会响应,所以我让箭头包围了整个屏幕。然后我把它藏起来了。你需要做的是将鼠标悬停在你想去的位置上,按“a”,当它变黑时点击屏幕。然后 shell 将显示您需要的坐标。确保你总是回到 (1000,0)。

 import turtle as t

def showTurtle():
    t.st()
    return

def getPos(x,y):
    print("(", x, "," ,y,")")
    return

def hideTurtle(x,y):
    t.ht()
    return

def main():
    t.speed(20)
    t.shapesize(1000,1000)
    t.up()
    t.goto(1000,0)
    t.ht()
    t.onkey(showTurtle,"a")
    t.listen()
    t.onclick(getPos)
    t.onrelease(hideTurtle)
    t.mainloop()
main()

另外,如果我班上的任何人发现这个,我是宾厄姆顿的 CS 学生,如果你使用这个,我建议不要留下任何痕迹。教授已经看到了这一点并且会认出它。

原文由 Shaw 发布,翻译遵循 CC BY-SA 3.0 许可协议

您需要使用 Screen 类。但是,如果您想远离 OOP,可以使用内置方法 turtle.onscreenclick(func)

代替

def main():
    t.onclick(getPos)
    t.mainloop()
main()

def main():
    t.onscreenclick(getPos)
    t.mainloop()
main()

原文由 jamesw6811 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题