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

