如何只退出 pygame window 而不是整个代码?

How do you exit only a pygame window and not the whole code?

我的程序不仅使用 Pygame,还使用 ​​Tkinter,所以我有一个 tkinter window 运行 而 pygame window 是.通常的做法是在 Pygame 代码中执行 sys.exit() 以停止 pygame.error: video system not initialized 错误,以下面的代码片段为例。这样做的问题是,如果您不仅是 运行 pygame 代码,这个“解决方案”将停止代码中的所有内容,而不仅仅是 pygame window。 (仅供参考,此错误不会使程序崩溃或停止,所以它只是一个控制台问题,但它仍然很烦人)。

import pygame, sys
  
while True:  # event loop
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.update()

那么,是否有仅退出 pygame 代码的 sys.exit() 替代方案?

sys.exit() terminates the interpreter. pygame.quit 取消初始化所有 pygame 模块。一旦您调用了 pygame.quit(),调用任何其他 pygame 语句将导致异常。在应用程序循环后调用 pygame.quit() 并删除 sys.exit():

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    # [...]
    pygame.display.update()

pygame.quit()