【发布时间】:2014-06-10 17:09:39
【问题描述】:
我目前正在使用我的全新覆盆子与 adafruit 的 touch-tft 和覆盆子凸轮。
我注意到,如果我运行 raspivid -p,它会在 bash 顶部的框架中显示预览。
如何创建应用程序(java、python、c++(首选))来显示 GUI 而无需 startx?
我很想将 adafruit 的 touch-tft 用于项目,但 startx 需要大量资源。当然,如果有触控功能也很酷。
编辑:
也许我表达自己有点困惑:我想创建一个不需要 startx 但有某种 GUI 的应用程序。
以下答案并非 100% 准备就绪,但它们为我指明了正确的方向。由于我看到了许多类似的问题,我将尝试给出一个逐步的解决方案:
使用 adafruit 的 TFT 设置您的覆盆子:https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (您不必将 TFT 替换为 HDMI 作为标准显示器)
-
确保
FRAMEBUFFER=/dev/fb1 startx在 TFT 屏幕上正常运行,我的电视已插入 HDMI 端口,这样我可以在电视屏幕上使用 bash 并在 TFT 上运行 x 按照本教程创建您的第一个 pygame:http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (你可以复制粘贴,
wget ball.gif)-
在开头插入这两行:(github.com/notro/fbtft/wiki/Pygame)
import os os.environ["SDL_FBDEV"] = "/dev/fb1" -
如果要测试触摸屏,可以更改第 15 行: 来自:
if event.type == pygame.QUIT: sys.exit()收件人:
if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()如果您触摸屏幕,这将退出应用程序
保存文件,例如pygame1.py 并使用
$python pygame1.py执行
您现在应该在您的 TFT 上看到一个弹跳球,而 HDMI 输出仍然在您的电视上显示 BASH(但它当然没有激活)如果您完成了第 6 步,触摸屏幕将退出游戏
我为什么要这样做?通过这种方式,您可以显示一个简单的 GUI,例如按钮来执行一些操作,例如在使用 RPI 进行家庭控制时打开/关闭灯。
【问题讨论】:
-
我相信您需要某种类型的窗口管理器来显示像
gedit这样的应用程序。 -
这仅适用于 pygame 吗?我正在运行一个 kivy 应用程序。我想在启动时运行程序并且不想通过 startx 进入应用程序,因为我使用的是没有 GUI 的发行版,因为我需要在许多覆盆子上实现这一点。我会试试你的建议,如果可行,我会找到你并给你买杯啤酒,因为我这几天一直在绞尽脑汁将我的应用程序移植到 piTFT。
-
它不起作用。最奇怪的是应用程序被移植到 HDMI 并且接受来自 piTFT 的触摸事件,所以我可以在 piTFT 上移动鼠标但没有图形显示。太令人沮丧了。
标签: raspberry-pi