如何只退出 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()
我的程序不仅使用 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()