Keyboard 使用帧缓冲区时的Pygame抓取控制台输入

Keyboard 使用帧缓冲区时的Pygame抓取控制台输入,keyboard,pygame,raspberry-pi,framebuffer,Keyboard,Pygame,Raspberry Pi,Framebuffer,我有一个树莓圆周率与皮夫特模块。我想使用Pygame来显示使用帧缓冲区(不带X)的模块信息。我有所有的显示功能,但问题是pygame正在从键盘抓取输入,所以我甚至不能用alt 1-7更改终端 此任务应该在后台运行,因此这不是期望的行为。但是我找不到任何方法来禁用它。它看起来像pygame.event.set_grab()可能是合适的,但没有帮助。下面是我的代码的简化版本,它显示了相同的问题 import os import pygame import time from time import

我有一个树莓圆周率与皮夫特模块。我想使用Pygame来显示使用帧缓冲区(不带X)的模块信息。我有所有的显示功能,但问题是pygame正在从键盘抓取输入,所以我甚至不能用alt 1-7更改终端

此任务应该在后台运行,因此这不是期望的行为。但是我找不到任何方法来禁用它。它看起来像pygame.event.set_grab()可能是合适的,但没有帮助。下面是我的代码的简化版本,它显示了相同的问题

import os
import pygame
import time
from time import gmtime,strftime,localtime

class pytest :
screen = None

def __init__(self):
    os.environ["SDL_FBDEV"] = "/dev/fb1"
    try:
        pygame.display.init()
    except pygame.error:
        print 'Init failed.'

    size = (pygame.display.Info().current_w, pygame.display.Info().current_h)
    self.screen = pygame.display.set_mode(size, pygame.FULLSCREEN)
    pygame.event.set_grab(0)
    pygame.font.init()
    self.font = pygame.font.SysFont("", 30)

def __del__(self):
    "Destructor to make sure pygame shuts down, etc."

def test(self):

    lightblue = (92, 92, 176)
    self.screen.fill(lightblue)
    tm=time.strftime("%H:%M:%S",localtime())
    t=self.font.render(tm,1,(255,255,155))
    self.screen.blit(t,(240,00))
    pygame.display.update()

scope = pytest()
while 1:
  scope.test()
  pygame.event.pump()
  time.sleep(1)