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

如何在Python中保持Graphics图形窗口不闪退?

问题

运行以下Python代码时,图形窗口会一闪而过,请问如何保持该窗口?我尝试过win.getMouse()、win.getKey()等函数,但都未能实现预期效果。

代码示例:

from graphics import *
win = GraphWin()
p = Point(50, 60)
p.getX()
p.getY()
p.draw(win)
p2 = Point(140, 100)
p.draw(win)
解决方法

首先修正代码里的小问题:你最后重复绘制的是p而非p2,将p.draw(win)改为p2.draw(win),确保两个点都被正确绘制。

针对窗口闪退的核心问题,推荐以下两种有效方案:

  • 添加事件循环(最可靠):在代码末尾加入win.mainloop(),它会启动图形窗口的事件循环,让窗口持续运行直到你手动关闭:

    from graphics import *
    win = GraphWin()
    p = Point(50, 60)
    p.draw(win)
    p2 = Point(140, 100)
    p2.draw(win)
    win.mainloop()  # 保持窗口运行
    
  • 等待用户输入再关闭:如果想用win.getMouse(),确保它放在所有绘图操作之后,还可以搭配win.close()明确触发窗口关闭:

    from graphics import *
    win = GraphWin()
    p = Point(50, 60)
    p.draw(win)
    p2 = Point(140, 100)
    p2.draw(win)
    win.getMouse()  # 等待鼠标点击
    win.close()  # 点击后关闭窗口
    

注:以上方法基于John Zelle编写的标准graphics.py库,若使用其他衍生版本,核心逻辑一致,仅需微调适配。

内容的提问来源于stack exchange,提问作者Manitosh Paul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:07:11