使用framebuffer时Pygame抓取控制台输入

时间:2015-08-14 04:01:58

标签: keyboard pygame raspberry-pi framebuffer

我有一个带有PiTFT模块的Raspberry Pi。我想使用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)

0 个答案:

没有答案