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

G-M*_*G-M 16 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替换为HDMI作为标准显示)

  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"
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果要测试触摸屏,可以更改第15行:从:

    if event.type == pygame.QUIT: sys.exit()
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
    
    Run Code Online (Sandbox Code Playgroud)

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

  6. 保存文件,例如pygame1.py并执行 $python pygame1.py

您现在应该在TFT上看到一个弹跳球,而HDMI输出仍然在电视上显示BASH(但当然没有激活)如果您完成了第6步,触摸屏将退出游戏

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

Dim*_*y K 11

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


小智 6

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

- 安装所需的包:

apt-get update
apt-get install xorg - no-install-recommends gdm3 matchbox-window-manager Iceweasel rsync-y
Run Code Online (Sandbox Code Playgroud)

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

adduser kiosk
Run Code Online (Sandbox Code Playgroud)

- 创建-的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
Run Code Online (Sandbox Code Playgroud)

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

chmod a + x. xsession
cp / opt / kiosk / .xsession / home / kiosk
Run Code Online (Sandbox Code Playgroud)

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

nano / etc/gdm3/daemon.conf
[Daemon]
AutomaticLoginEnable = true
AutomaticLogin = kiosk
Run Code Online (Sandbox Code Playgroud)

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

- 未加载整个屏幕时的屏幕校准:

/ Boot / config.txt file, clear the comment:
disable_overscan = 1
Run Code Online (Sandbox Code Playgroud)

我希望我帮忙