没有窗口/ GUI运行Pygame

时间:2015-12-18 03:10:48

标签: user-interface window pygame surface

是否可以在不创建pygame窗口,曲面或GUI的情况下运行pygame? 我想利用某些pygame函数,但我不想弹出GUI。

例如,除非我在pygame中设置了一个窗口,否则此函数将无效。

running = True

def mainloop():
while True:

    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ) or \
        ( event.type == pygame.KEYDOWN and \
        ( event.key == pygame.K_ESCAPE) ):
            running = False
            print "quit"
            pygame.quit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                print "working"

3 个答案:

答案 0 :(得分:4)

DrevanTronder是正确的,但是他没有正确回答这个问题,因为你问的是如何在没有GUI的情况下在pygame中做事件,如你的示例编码所示。

这是不可能的。运行Pygame程序时,它仅在选择了Pygame窗口时检测事件。如果没有Pygame窗口,则无法选择,因此事件将不起作用。以下内容直接来自Pygame文档:

“如果显示尚未初始化且未设置视频模式,则事件队列将无法正常工作。” https://www.pygame.org/docs/ref/event.html

但是,当然,如果你不是专门谈论事件处理,那么DrevanTronder是正确的;你需要做的就是用“import pygame”导入模块并用“pygame.init()”初始化它。

希望这有帮助!

答案 1 :(得分:0)

是的,你可以。

import pygame

pygame.init()
while 1:
    print pygame.time.get_ticks()
    pygame.time.wait(10)

这将为您提供自pygame启动以来没有GUI弹出的时间(以毫秒为单位)。

答案 2 :(得分:0)

如果您运行的是Linux,则可以使用Xvfb

基本上,Xvfb“捕获”所有与显示相关的计算并在内存中执行它们,而不会进行显示。

根据您的操作系统行为,它可能不适合您的目的。在PyGame中捕获键只有在PyGame窗口是活动窗口时才会起作用,但是看到你无法在这里设置活动窗口,如果没有额外的解决方法,这可能无法工作。