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

运行pygame绘图代码时窗口持续崩溃无响应如何解决

Pygame窗口无响应问题修复方案

问题原因

Pygame运行时必须持续消费系统事件队列(包含窗口关闭、移动、键鼠操作等事件),如果没有对应的事件处理逻辑,操作系统会判定程序处于未响应状态。同时你的代码存在两个额外问题:

  • 创建的PixelArray对象会锁定画布表面,导致后续绘制的图形无法正常渲染到窗口
  • 缺少画面刷新步骤,绘制的内容不会主动展示在窗口上

修复后完整代码

import pygame
import sys
pygame.init()

white=(255,255,255)
black=(0,0,0)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)

gameDisplay=pygame.display.set_mode((800,600))
gameDisplay.fill(black)

Displayer=pygame.PixelArray(gameDisplay)
# 释放PixelArray,解锁画布
del Displayer

pygame.draw.line(gameDisplay, blue,(100,200),(300,450),5)
pygame.draw.rect(gameDisplay, red, (400,400,50,25))
pygame.draw.circle(gameDisplay, white,(150,150),75)

# 刷新窗口,渲染所有已绘制的图形
pygame.display.update()

# 事件循环,持续处理系统事件避免窗口未响应
while True:
    for event in pygame.event.get():
        # 监听窗口关闭事件,触发时正常退出程序
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

核心修改点说明

  • 新增sys模块导入,用于程序正常退出
  • 主动释放PixelArray对象,解除画布锁定,保证绘制内容可以正常输出
  • 新增pygame.display.update()调用,将所有绘制的图形一次性刷新到窗口
  • 新增主事件循环,持续消费事件队列,处理窗口关闭请求,避免操作系统判定程序未响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:06:03