在没有startx的情况下在Raspberry Pi上显示GUI

时间:2014-06-10 17:09:40

标签: raspberry-pi

我目前正在使用我的全新覆盆子与adafruit的touch-tft和覆盆子Cam。

我注意到,如果我运行raspivid -p,它会在bash顶部的框架中显示预览。

如何创建一个应用程序(java,python,c ++(首选))来显示GUI而不必startx

我喜欢将adafruit的touch-tft用于项目,但startx需要大量资源。当然,拥有触控功能也会很酷。

编辑:

也许我表达自己有点困惑:我想创建一个不需要startx但有某种GUI的应用程序。

以下答案并非100%准备好,但他们指出了正确的方向。由于我看到了许多类似的问题,我将尝试逐步解决问题:

  1. 使用adafruit的TFT设置覆盆子:https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (你不必用HDMI替换TFT作为标准显示器)

  2. 确保FRAMEBUFFER=/dev/fb1 startx在TFT屏幕上正常运行,我将电视插入HDMI端口,这样我就可以在电视屏幕上使用bash并在TFT上运行x

  3. 按照本教程创建第一个pygame:http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (您只需复制并粘贴,wget ball.gif

  4. 在beggining处插入这2行:(github.com/notro/fbtft/wiki/Pygame)

    import os
    os.environ["SDL_FBDEV"] = "/dev/fb1"
    
  5. 如果要测试触摸屏,可以更改第15行: 从:

    if event.type == pygame.QUIT: sys.exit()
    

    要:

    if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
    

    如果您触摸屏幕,这将退出应用程序

  6. 保存文件,例如pygame1.py并使用$python pygame1.py

  7. 执行

    你现在应该在你的TFT上看到弹跳球,而HDMI输出仍然在你的电视上显示BASH(当然它不是活动的)如果你完成了第6步,触摸屏将退出游戏

    为什么我要这样做?通过这种方式,您可以显示简单的GUI,例如按钮可以执行某些操作,例如,如果您使用RPI进行家庭控制,请打开/关闭灯。

4 个答案:

答案 0 :(得分:11)

您可以使用例如pygame库!查看本教程http://archive.furtherfield.org/rp-resources/RP-workshop-handout.pdf pg。 17

答案 1 :(得分:6)

下面,您将找到有关如何成为最小窗口管理器的详细说明,以启动您选择的图形程序。

- 安装必需的包裹:

apt-get update
apt-get install xorg - no-install-recommends gdm3 matchbox-window-manager Iceweasel rsync-y

- 有问题的系统,选择添加新用户界面gdm3。终端是将使用的默认名称。

adduser kiosk

- 创建-的Xsession。用户登录时将执行此脚本。

xset s off
xset -dpms
matchbox-window-manager &
while true; do
rsync -qr --delete --exclude='.Xauthority’ /opt/kiosk/ $HOME/
firefox http://www.google.com (Replace your application!!!)
done

保存Ctrl + O;退出:Ctrl + X

chmod a + x. xsession
cp / opt / kiosk / .xsession / home / kiosk

设置自动登录。 Kiosk用户将在启动后自动进入。

nano / etc/gdm3/daemon.conf
[Daemon]
AutomaticLoginEnable = true
AutomaticLogin = kiosk

我们已选择配置,编程,如有必要

- 未在整个屏幕上加载时进行屏幕校准:

/ Boot / config.txt file, clear the comment:
disable_overscan = 1

我希望我帮助

答案 2 :(得分:1)

查看Urwid,一个可以在终端中运行的基于文本的UI,或者,我假设,在没有startx的情况下启动的Raspberry Pi。

答案 3 :(得分:0)

简而言之,像gedit这样的应用程序是在桌面环境(例如Gnome,Kde)之上构建的。