我一直在尝试用Python Turtle制作一个绘图程序,由于某种原因它不起作用。我正在使用pen()工具,我的代码看起来像这样
from turtle import *
import random
pen()
bgcolor('black')
pencolor('white')
pen.ondrag(pen.goto)
listen()
mainloop()
我看看这个http://docs.python.org/2/library/turtle.html并且它说要输入turtle.ondrag(turtle.goto)但是因为我正在使用它它应该像pen.ondrag一样工作但它没有,所以可以有人请清除它。
谢谢Jellominer
答案 0 :(得分:0)
首先,pen()
不是您想要的功能。其次,虽然Pen
是Turtle
的同义词,但pen
不是turtle
的同义词。如果您想使用ondrag()
代替Pen
,请按以下步骤使用Turtle
:
from turtle import Pen, Screen, mainloop
def ondrag_handler(x, y):
pen.ondrag(None) # disable handler inside handler
pen.setheading(pen.towards(x, y)) # turn toward cursor
pen.goto(x, y) # move toward cursor
pen.ondrag(ondrag_handler)
screen = Screen()
screen.bgcolor('black')
pen = Pen()
pen.color('white')
pen.shapesize(2) # make it larger so it's easier to drag
pen.ondrag(ondrag_handler)
screen.listen()
mainloop() # screen.mainloop() preferred but not in Python 2
turtle.ondrag(turtle.goto)
在文档中提供了一个很好的简短示例,但实际上并不实用。您希望在处理事件时禁用事件处理程序,否则事件将对您不利。在拖动鼠标时将鼠标移向光标会很不错。
答案 1 :(得分:0)
from turtle import *
ts = Screen()
ondrag(goto)
shapesize(10)
pensize(40)
speed(0)
mainloop()
我认为这一定可以。
您可以更改大小和其他内容 在这里,您使用的是默认的turtle。
抱歉,您需要注意缩进
答案 2 :(得分:-1)
我将简化并澄清提问者给出的代码:
from turtle import *
ts = Screen(); tu = Turtle()
ts.listen()
ondrag(tu.goto)
mainloop()
这很有效。你必须点击乌龟并拖动它。