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

Pygame窗口在While循环存在时仍闪退且未执行填充的问题求助

解决Pygame窗口一闪而过且颜色不生效的问题

我来帮你排查下问题所在,你的代码踩了两个常见的小坑,导致窗口瞬间关闭且颜色没显示出来:

1. window.fill()的参数格式错误

Pygame的fill()方法要求传入RGB颜色元组,但你写的是三个单独的数值:

window.fill(255,255,200)  # 错误写法

这种写法会触发TypeError,直接终止while循环,程序立刻执行pygame.quit(),所以窗口刚打开就关闭了。正确写法是把颜色值打包成一个元组:

window.fill( (255, 255, 200) )  # 正确写法

2. 缺少屏幕刷新操作

就算修正了fill的参数,你也没告诉Pygame把绘制的内容更新到窗口上。需要在while循环的末尾添加屏幕刷新的代码,要么用pygame.display.flip()(刷新整个窗口),要么用pygame.display.update()(刷新指定区域,这里用flip更简单)。

修正后的完整代码

import pygame
pygame.init()
(width, height) = (300, 300)
window = pygame.display.set_mode((width, height))
run = True
while run:
    window.fill( (255, 255, 200) )  # 修正颜色参数格式
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    pygame.display.flip()  # 添加屏幕刷新
pygame.quit()

运行这段代码后,窗口会正常显示浅黄底色,点击关闭按钮才会退出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:23:15