首页 > 解决方案 > Pygame 窗口没有关闭

问题描述

我在那个视频中找到了 youtube 上的教程,那个人正在运行这段代码:

import pygame
pygame.init()

win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Testing")

run = True
while run:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

pygame.quit()

如果 event.type == pygame.QUIT:

当我写“pygame.quit:”而不是“pygame.QUIT:”(在for循环中)时,窗口不会关闭。我是一个完整的初学者。它是我们必须将其大写的命令吗?有人可以解释为什么吗?

标签: pythonpygameexit

解决方案


因为 pygame.quit() 使系统退出并且 exit() 关闭该窗口。

for event in pygame.event.get():
   if event.type == pygame.QUIT:
      pygame.quit()
      exit()

更新

事件对象有一个名为type的成员变量(也称为属性或属性),它告诉我们对象代表什么类型的事件。对于 pygame.locals 模块中的每种可能类型,Pygame 都有一个常量变量。

if event.type == pygame.QUIT:

检查Event对象的类型是否等于常量QUIT

这就是为什么我们检查 Event 对象是否是退出事件,然后调用 pygame.quit() 和 exit() 函数。pygame.quit() 函数与 pygame.init() 函数有点相反:它运行停用 Pygame 库的代码。

TLDR;QUIT 表示事件类型,pygame.quit() 是函数


推荐阅读