【发布时间】:2021-12-19 19:50:16
【问题描述】:
这就是我目前所拥有的,但我想做到这一点,我可以在窗口中单击三次,并在鼠标单击点处有三个不同颜色的圆圈。
from Graphics import *
def main():
win = GraphWin("ball", 400, 400)
win.setBackground('black')
while True:
point = win.getMouse()
if point.x > 20 and point.y > 20:
circ_1 = Circle(Point(point.x,point.y), 20)
circ_1.setFill("white")
circ_1.draw(win)
continue
if point.x > 20 and point.y > 20:
circ_2 = Circle(Point(point.x,point.y), 20)
circ_2.setFill("blue")
circ_2.draw(win)
continue
if point.x > 20 and point.y > 20:
circ_3 = Circle(Point(point.x,point.y), 20)
circ_3.setFill("yellow")
circ_3.draw(win)
continue
win.getMouse()
win.close()
main()
【问题讨论】:
-
你为什么使用
while True?你为什么使用continue?如果point将具有point.x > 20 and point.y > 20:,那么它将仅首先运行if而不是其他。 -
通常GUI框架有方法将函数分配给
even,就像mouse button press一样,然后这个函数函数只有在你点击鼠标时才会执行——它可以创建新的对象。并且需要使用一些全局变量来记住上次使用的颜色和下次使用不同的颜色。
标签: python python-3.x loops while-loop graphics