You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:45:08