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

MacOS系统下Pygame窗口无法关闭问题求助

解决MacOS下Pygame窗口无法关闭的问题

你的代码存在两个核心问题,导致窗口无法正常关闭:

1. 事件常量使用错误

你在判断退出事件时用了pygame.quit,这是退出Pygame的函数,而关闭窗口对应的事件类型是大写的pygame.QUIT常量。这个错误会导致程序永远捕获不到关闭窗口的事件。

2. 缺少Pygame资源清理步骤

仅设置running = False终止循环还不够,需要在循环结束后调用pygame.quit()来彻底释放Pygame占用的系统资源,否则MacOS下可能出现进程残留、窗口无法真正关闭的情况。

另外,MacOS下建议在主循环中添加窗口刷新操作(比如pygame.display.update()),避免窗口出现无响应状态。

修复后的完整代码

窗口类

import pygame

class Window:
    def __init__(self, window_dimension: tuple[int, int]):
        pygame.init()
        self.window = pygame.display.set_mode(window_dimension)
        self.running = True

    def check_quit(self, event_type: int): 
        if event_type == pygame.QUIT:  # 修正为大写QUIT常量
            self.running = False

主程序

WINDOW_DIMENSION = (600, 600)

win = Window(WINDOW_DIMENSION)

while win.running:
    for event in pygame.event.get():
        win.check_quit(event.type)
    # 刷新窗口,避免Mac下无响应
    pygame.display.update()

# 彻底退出Pygame
pygame.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:27:32