我有一个带有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)