问题描述
我是 Python 初学者。 然后我开始用 Python 海龟图形制作绘图程序并上传到 Github。
我想在单击鼠标左键时绘制线条。当我只移动鼠标而不点击左键时,乌龟只是跟着我的光标移动。
所以我用谷歌搜索并找到了一些有用的代码。但它的工作原理很奇怪。 我的意思是,它不能很好地工作。
喜欢,当我点击按钮时,乌龟不动。或者我可以通过单击按钮移动乌龟,但线不绘制...
无论如何,这里都是我的代码(我认为显示完整的代码对你更好......)。
from turtle import Screen
screen = Screen()
while True:
print('===========================')
print('*** Welcome to Pyint!!! ***')
print('___________________________')
print('*** Drawing With Turtle ***')
print('___________________________')
print('******* ver. 2.1.0 ********')
print('___________________________')
print('* Press Enter For Start!! *')
print('___________________________')
print('===========================')
import turtle as t
t.color('white')
t.bgcolor('black')
t.speed(0)
t.shape('circle')
t.pensize(5)
t.shapesize(2,2,2)
break
def colorsettings():
while True:
print('------------------------')
print('**** Color Settings ****')
print('------------------------')
chgpencolor = t.color(str(input('Color?:')))
savecolorsettings = str(input('Save the color settings? [y/n]:'))
if savecolorsettings == 'n':
continue
elif savecolorsettings == 'y':
print('-----------------------')
print('******** Saved ********')
print('-----------------------')
break
def thicknesssettings():
while True:
print('------------------------')
print('** Thickness Settings **')
print('------------------------')
chgpenthickness = t.pensize(int(input('Thickness?:')))
savethicknesssettings = str(input('Save the thickness settings? [y/n]:'))
if savethicknesssettings == 'n':
continue
elif savethicknesssettings == 'y':
print('-----------------------')
print('******** Saved ********')
print('-----------------------')
break
Moving,Dragging = range(2) # Codes about control the turtle start here.
def move_pen(x,y):
if state != Moving:
return
onmove(screen,None)
t.penup()
t.setheading(t.towards(x,y))
t.goto(x,y)
onmove(screen,move_pen)
def click_pen(x,y):
global state
t.onclick(None)
onmove(screen,None)
t.onrelease(release_handler)
t.ondrag(drag_handler)
state = Dragging
def release_handler(x,y):
global state
t.onrelease(None)
t.ondrag(None)
t.onclick(click_pen)
onmove(screen,move_pen)
state = Moving
def drag_handler(x,y):
if state != Dragging:
return
t.ondrag(None)
t.pendown()
t.setheading(t.towards(x,y)
t.ondrag(drag_handler)
def onmove(self,fun,add=None):
if fun is None:
self.cv.unbind('<Motion>')
else:
def eventfun(event):
fun(self.cv.canvasx(event.x) / self.xscale,-self.cv.canvasy(event.y) / self.yscale)
self.cv.bind('<Motion>',eventfun,add)
onmove(screen,move_pen)
t.onclick(click_pen) # End of codes about control the turtle
state = Moving
while True:
ipt = str(input())
if ipt == 'pencolor':
colorsettings()
elif ipt == 'penthickness':
thicknesssettings()
elif ipt == 'h':
t.goto(0,0)
elif ipt == 'c':
t.clear()
elif ipt == 'z':
t.undo()
elif ipt =='pu':
t.penup()
elif ipt =='pd':
t.pendown()
elif ipt == 'gg':
print('Are you really want to close the program? [y/n]')
elif ipt == 'n':
continue
elif ipt == 'y':
break
这是我第一次来这里。也是我的第一个问题。 如果我的问题对你粗鲁或不友好,我想说声抱歉。
谢谢:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)