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

如何让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变量控制循环的持续状态,初始为True
  • pygame.event.get()会捕获所有用户输入事件,当点击窗口关闭按钮时,会触发pygame.QUIT事件,此时将running设为False,循环终止
  • 只有循环结束后才执行pygame.quit(),窗口会一直保持显示,直到用户主动关闭

如果需要在窗口显示期间添加动画、键盘响应等逻辑,直接写在这个事件循环里即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:06:01