【发布时间】:2014-07-21 22:10:36
【问题描述】:
我制作了一个带有按钮的 pygame GUI 界面,当用户点击它们时,这些按钮就会被激活。当我使用真正的鼠标时,GUI 运行良好,但是当我在 PITFT (https://www.adafruit.com/product/1601) 上运行 GUI 时,按钮不响应点击(即使我使用比我的手指更硬的材料,如手写笔)。
所以问题是:Pygame click 事件是否与 PITFT 兼容,或者是否有一种“特殊”事件为它制作?
这是我在代码中使用的当前鼠标事件:
def run(self):
"""Lance la boucle principale pour gérer les événements
"""
while True:
event = pygame.event.wait()
if event.type == MOUSEBUTTONDOWN and event.button == 1 and not self.keep_level_2:
self.click(event.pos)
elif event.type == MOUSEBUTTONUP and event.button == 1:
self.release(event.pos)`
我在网上搜索,发现要使用PiTft,你需要添加以下几行:
os.environ['SDL_VIDEODRIVER'] = 'fbcon'
os.environ["SDL_FBDEV"] = "/dev/fb1"
os.environ["SDL_MOUSEDEV"] = "/dev/input/touchscreen"
os.environ["SDL_MOUSEDRV"] = "TSLIB"
所以我尝试添加它们,但触摸屏仍然没有响应。
另外,什么时候程序运行,我不能退出(CTRL C和escape不起作用)。
注意:我的代码没有在 python 3 中运行
【问题讨论】:
-
从您发布的内容来看,您需要为pygame设置鼠标设备和鼠标驱动程序才能正确捕获鼠标。您在哪里添加了这些行?
-
我还尝试降低我的 pygame 窗口的分辨率,使其不会全屏显示(因此我可以尝试通过单击窗口的退出按钮退出)但这也不起作用...实际上,pygame窗口保持全屏:/
-
我怎样才能添加这些驱动程序? :) 我一开始就有这些行(就在“导入行”之后)
-
我有这个屏幕与 pygame 一起工作,并设置了与您相同的
os.environ行。我还不清楚问题是什么。我没有测试event.button。看看我的代码:github.com/elParaguayo/RPI-Info-Screen/blob/PiTFT/default.py -
@elParaguayo 您是使用自定义 raspbian 内核“准备刻录映像”还是按照指南将其安装在您当前的 raspian 上?也许他们有不同的司机姓名。
标签: python pygame raspberry-pi touchscreen