关闭Pygame风

2024-04-23 19:46:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是花了相当长的时间来寻找一个64位的pygame安装,以便与python 3.3一起使用,(here),现在我正试图创建一个窗口。但是,尽管窗口打开得很好,但当它按x按钮时它不会关闭。事实上,我必须关闭空闲关闭窗口。我正在运行64位版本的Win 7。这是我的代码:

import pygame
import time
(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.flip()
pygame.display.set_caption("Hello World")
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

当我附加

time.sleep(5)
pygame.quit()

它还是关不上。我唯一的猜测是pygame.quit可能会进入其中一个循环,但即使解决了这个问题,我还是非常希望能够在需要的时候关闭窗口。


Tags: importeventheretimedisplay时间width按钮
3条回答

不确定,但试试这个,因为在我最后添加pygame.quit()之后,您的代码在我的系统上运行良好

import pygame
import time
(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.flip()
pygame.display.set_caption("Hello World")
running = True
try:
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
    pygame.quit()
except SystemExit:
    pygame.quit()

这可能是因为在Tkinter上进行了空闲,因此Tkinter和Pygame主循环没有相互理解。
不过,您的代码在命令提示符下运行得很好。

大多数pygame教程似乎建议通过调用pygame.quit()然后sys.exit()退出。我个人遇到了一些问题(虽然是在unix系统上),但仍然无法正确关闭窗口。解决方法是在pygame.quit()之前特别添加pygame.display.quit()。据我所知,这不应该是必要的,恐怕我不知道为什么这解决了问题,但确实解决了。

如果要在按下窗口按钮x时关闭pygame,请输入如下代码:

from sys import exit
while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                exit()

我们将exit()放在pygame.quit()之后,因为pygame.quit()使系统退出,exit()关闭该窗口。

相关问题 更多 >