Ответ 1
Вы можете использовать, например, pygame library! проверьте этот учебник http://archive.furtherfield.org/rp-resources/RP-workshop-handout.pdf стр. 17
В настоящее время я играю с моей совершенно новой малиной с adafruit touch-tft
и малиной Cam.
Я заметил, что если я запустил raspivid -p
, он отобразит предварительный просмотр в кадре поверх bash.
Как создать приложение (java, python, С++ (предпочтительно)) для отображения графического интерфейса без startx
?
Я хотел бы использовать adafruit touch-tft
для проекта, но startx
нуждается в большом количестве ресурсов. Конечно, было бы здорово иметь сенсорную функциональность тоже.
Edit:
Возможно, я немного смутил: мне хотелось бы создать приложение, которое не нуждается в startx, но имеет какой-то графический интерфейс.
Ответы ниже не готовы на 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 на экране телевизора и запустить x на TFT
Следуйте этому руководству, чтобы создать свой первый 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: From:
if event.type == pygame.QUIT: sys.exit()
To:
if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
Это приведет к выходу из приложения, если вы коснетесь экрана
Сохранить файл, например. pygame1.py и выполнить с помощью $python pygame1.py
Теперь вы должны увидеть прыгающий шар на вашем TFT, в то время как выход HDMI по-прежнему отображает bash на вашем телевизоре (но он неактивен, конечно), касаясь экрана, выйдет из игры, если вы выполнили шаг 6
Почему я это делаю? Таким образом, вы можете отображать простой графический интерфейс, например. чтобы сделать какое-то действие, например включить или выключить свет, если вы используете свой RPI для домашнего контроля.
Вы можете использовать, например, pygame library! проверьте этот учебник http://archive.furtherfield.org/rp-resources/RP-workshop-handout.pdf стр. 17
Ниже вы найдете подробное описание того, как быть минимальным оконным менеджером, чтобы запустить графическую программу по вашему выбору.
-Установить необходимые пакеты:
apt-get update
apt-get install xorg - no-install-recommends gdm3 matchbox-window-manager Iceweasel rsync-y
- В рассматриваемой системе выберите Добавить новый пользовательский интерфейс gdm3. Терминал будет использоваться по умолчанию.
adduser kiosk
-Создание-Xsession. Этот script будет выполнен, когда пользователь войдет в систему.
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
Установите Авто-Вход. Пользователь киоска автоматически войдет после загрузки.
nano / etc/gdm3/daemon.conf
[Daemon]
AutomaticLoginEnable = true
AutomaticLogin = kiosk
Мы решили настроить, при необходимости, программа
- Калибровка экрана, когда не загружена весь экран:
/ Boot / config.txt file, clear the comment:
disable_overscan = 1
Надеюсь, я помог
Отметьте Urwid, текстовый ui, который может работать в терминале, или, я полагаю, на малине Pi запущен без startx.
Короче говоря, вы не можете использовать такие приложения, как gedit, поверх настольной среды (например, Gnome, Kde).