如何在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
相关产品推荐
相关产品推荐

