如何让Pygame创建的窗口永久显示不消失?
解决Pygame窗口持续显示的问题
你的代码移除pygame.time.wait()后窗口直接消失,是因为程序执行完绘图和更新操作后,立刻走到了pygame.quit(),窗口刚创建就被销毁了。要让窗口一直显示,必须加入事件循环,监听用户操作(比如关闭窗口),只有收到退出信号时才终止程序。
修改后的代码如下:
import pygame pygame.init() prozor = pygame.display.set_mode((200, 200)) prozor.fill(pygame.Color("white")) pygame.draw.rect(prozor, pygame.Color("black"), (20, 20, 160, 160), 5) pygame.display.update() # 事件循环:维持窗口运行直到用户主动关闭 running = True while running: # 遍历处理所有用户事件 for event in pygame.event.get(): # 监听窗口关闭事件 if event.type == pygame.QUIT: running = False # 循环结束后再退出程序 pygame.quit()
关键说明:
running变量控制循环的持续状态,初始为Truepygame.event.get()会捕获所有用户输入事件,当点击窗口关闭按钮时,会触发pygame.QUIT事件,此时将running设为False,循环终止- 只有循环结束后才执行
pygame.quit(),窗口会一直保持显示,直到用户主动关闭
如果需要在窗口显示期间添加动画、键盘响应等逻辑,直接写在这个事件循环里即可。
内容的提问来源于stack exchange,提问作者pipppup
相关产品推荐
相关产品推荐

