我想编写一个Python程序,它将在图形窗口中显示一个字母。如果我单击窗口的右侧,文本需要变为红色,如果我单击左侧,则需要变为绿色。它需要至少工作五次。我写下以下哪个更改颜色只有两次,然后给我“graphics.GraphicsError:当前绘制的对象”。知道如何解决这个问题吗?
from graphics import *
def main():
win= GraphWin("Name",400,400)
win.setCoords(0.0,0.0,4.0,4.0)
win.setBackground("white")
p=Text(Point(2.0,2.0),'B')
p.setSize(36)
for i in range(0,6):
c=win.getMouse()
s=c.getX()
if s>=2 :
p.setTextColor("Red")
else:
p.setTextColor("Green")
p.draw(win)
main()
我是新手。我用zelle图形模块来做这个
答案 0 :(得分:0)
问题是@korefn建议的p.draw(win)
电话的位置。但是,与原始代码不同,此更改会在第一次单击之前显示“B”。我在下面的返工中添加了一些注释掉的代码,这些代码会使'B'与背景颜色相同,直到点击为止:
from graphics import *
def main():
win = GraphWin('Mouse Test', 400, 400)
win.setCoords(0.0, 0.0, 4.0, 4.0)
anchorPoint = Point(2.0, 2.0)
text = Text(anchorPoint, 'B')
text.setSize(36) # maximum legal size
# text.setTextColor('white') # optional initial invisibility
text.draw(win)
for _ in range(6):
point = win.getMouse()
if point.getX() >= anchorPoint.getX():
text.setTextColor('red')
else:
text.setTextColor('green')
win.close()
main()