在用graphics,buttons,face这三个模块做一个作业(画出一个表情,下面画几个按钮,点的时候表情会变),出现了一点问题。。。
就是说我在face这个类里面定义了一个
def __init__(self,window,center,size):
eyeSize=0.15*size
eyeOff=size/3.0
mouthSize=0.8*size
mouthOff=size/2.0
self.head=Circle(center,size)
self.head.draw(window)
self.leftEye=Circle(center,eyeSize)
self.leftEye.move(-eyeOff,-eyeOff)
self.rightEye=Circle(center,eyeSize)
self.rightEye.move(eyeOff,-eyeOff)
self.leftEye.draw(window)
self.rightEye.draw(window)
p1=center.clone()
p1.move(-mouthSize/2,mouthOff)
p2=center.clone()
p2.move(mouthSize/2,mouthOff)
self.mouth=Line(p1,p2)
self.mouth.draw(window)
def smile(self,center):
p3=center.clone()
p3.move(0,mouthOff*3.0/2.0)
self.mouth1=Line(p1,p3)
self.mouth2=Line(p2,p3)
self.mouth1.draw(window)
self.mouth2.draw(window)
self.mouth.undraw()
然后下面是我的主要模块:
def main():
win=GraphWin('Face',600,600)
a=Face(win,Point(300,300),50)
smileButton=Button(win,Point(100,400),50,25,'Smile')
smileButton.activate()
quitButton=Button(win,Point(500,400),50,25,'Quit')
quitButton.activate()
winkButton=Button(win,Point(200,400),50,25,'Wink')
winkButton.activate()
flinchButton=Button(win,Point(300,400),70,25,'Flinch')
flinchButton.activate()
p=win.getMouse()
while not quitButton.clicked(p):
if smileButton.clicked(p):
a.smile(Point(300,300))
smileButton.deactivate()
winkButton.deactivate()
flinchButton.deactivate()
quitButton.deactivate()
time.sleep(3)
smileButton.activate()
winkButton.activate()
flinchButton.activate()
quitButton.activate()
a.quitsmile()
但是当我点击smile按钮,就是运行到if条件语句里的那个a.smile(Point(300,300))的时候,他总是报错,提示我只需要输入一个argument但我用了2个,可是我觉得这样输应该是对的啊。。。
求教练教导问题在哪里。。。
就是说我在face这个类里面定义了一个
def __init__(self,window,center,size):
eyeSize=0.15*size
eyeOff=size/3.0
mouthSize=0.8*size
mouthOff=size/2.0
self.head=Circle(center,size)
self.head.draw(window)
self.leftEye=Circle(center,eyeSize)
self.leftEye.move(-eyeOff,-eyeOff)
self.rightEye=Circle(center,eyeSize)
self.rightEye.move(eyeOff,-eyeOff)
self.leftEye.draw(window)
self.rightEye.draw(window)
p1=center.clone()
p1.move(-mouthSize/2,mouthOff)
p2=center.clone()
p2.move(mouthSize/2,mouthOff)
self.mouth=Line(p1,p2)
self.mouth.draw(window)
def smile(self,center):
p3=center.clone()
p3.move(0,mouthOff*3.0/2.0)
self.mouth1=Line(p1,p3)
self.mouth2=Line(p2,p3)
self.mouth1.draw(window)
self.mouth2.draw(window)
self.mouth.undraw()
然后下面是我的主要模块:
def main():
win=GraphWin('Face',600,600)
a=Face(win,Point(300,300),50)
smileButton=Button(win,Point(100,400),50,25,'Smile')
smileButton.activate()
quitButton=Button(win,Point(500,400),50,25,'Quit')
quitButton.activate()
winkButton=Button(win,Point(200,400),50,25,'Wink')
winkButton.activate()
flinchButton=Button(win,Point(300,400),70,25,'Flinch')
flinchButton.activate()
p=win.getMouse()
while not quitButton.clicked(p):
if smileButton.clicked(p):
a.smile(Point(300,300))
smileButton.deactivate()
winkButton.deactivate()
flinchButton.deactivate()
quitButton.deactivate()
time.sleep(3)
smileButton.activate()
winkButton.activate()
flinchButton.activate()
quitButton.activate()
a.quitsmile()
但是当我点击smile按钮,就是运行到if条件语句里的那个a.smile(Point(300,300))的时候,他总是报错,提示我只需要输入一个argument但我用了2个,可是我觉得这样输应该是对的啊。。。
求教练教导问题在哪里。。。
