【问题标题】:PyGame and touchscreenPyGame 和触摸屏
【发布时间】: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


【解决方案1】:

我认为正在发生的事情是你正在做一个按钮向上,按钮向下方法。

我让我的 pygame GUI 工作...

click = pygame.mouse.get_pressed()

if x+w > mouse_pos[0] > x and y+h > mouse_pos[1] > y:
    pygame.draw.rect(screen, ac,(x,y,w,h))
    if click[0] == 1 and action != None:
            action()

但是对我来说,这会产生其他问题,因为我不认为触摸屏上的 1 次点击是平滑的单击。对我来说发生的事情是我的按钮会点击,然后它会无缘无故地进行第二次“点击”(我认为是因为点击中的“模糊”)。

因此,我的“开启”按钮会打开(它们可以正常工作)然后又关闭。还不太清楚该怎么做,但希望它能让你的项目工作。

【讨论】:

    【解决方案2】:

    您是否检查过您的 /dev/input/touchscreen 是否“链接”到了正确的模块? 检查 evtest /dev/input/touchscreen 并检查它在使用屏幕、键盘或鼠标时是否有任何反应!

    如果发生这种情况,您应该再次执行安装过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2018-03-27
      相关资源
      最近更新 更多