基于Graphics.py实现鼠标点击三次生成不同颜色圆形的问题咨询
问题分析
原有代码存在两个核心问题:
- 三个
if分支的判断条件完全相同,且第一个分支执行后直接触发continue跳出本次循环,后续两个分支永远不会执行,所有绘制的圆都为白色 - 没有点击计数逻辑,程序会无限响应鼠标点击,无法在三次绘制完成后停止
修改方案
新增点击计数器记录当前是第几次点击,按顺序从预定义的颜色列表取对应颜色绘制圆形,三次绘制完成后跳出循环。
完整修改代码
from Graphics import * def main(): win = GraphWin("ball", 400, 400) win.setBackground('black') # 按顺序定义三次点击要使用的填充色 color_list = ['white', 'blue', 'yellow'] # 点击计数器,初始为0 click_count = 0 while click_count < 3: point = win.getMouse() # 边界判断,避免圆超出窗口范围 if 20 < point.x < 380 and 20 < point.y < 380: circ = Circle(Point(point.x, point.y), 20) # 按当前点击次数取对应颜色 circ.setFill(color_list[click_count]) circ.draw(win) # 点击计数+1 click_count += 1 # 最后一次点击关闭窗口 win.getMouse() win.close() if __name__ == "__main__": main()
效果说明
- 第一次点击窗口有效区域,生成白色圆形
- 第二次点击生成蓝色圆形
- 第三次点击生成黄色圆形
- 三次绘制完成后,再次点击窗口即可关闭程序
内容的提问来源于stack exchange,提问作者Victor_G
相关产品推荐
相关产品推荐

