Faire une application avec interface (Tkinter) sur un OS sans GUI

Bonjour/bonsoir,
Sachez d’abord que ce dont je vais vous parler peut changer avec le temps ou selon vos conseils (je parle par exemple de Tkinter, mais si je trouve mieux j’irai voir), et que ledit projet est bloqué à cause de mon manque de connaissance dans ce domaine, c’est pourquoi je viens ici en dernier recours pour créer une discussion, parce qu’après beaucoup de recherches, je n’ai pas trouvé réellement ce que je voulais.

J’ai actuellement un Raspberry (Pi 4B), qui tourne avec Raspbian Lite (la version sans desktop donc), et 24/7. J’ai eu l’idée d’en faire une sorte de réveil, càd d’y brancher un écran, et de faire une application Tkinter (Python) qui ferait toutes sortes de choses (en commençant par afficher l’heure et savoir programmer des alarmes).
Je n’ai rien commencé, je prépare d’abord le terrain pour savoir comment je vais m’y prendre de A à Z.
Et voilà sur quoi je bute : Comment puis-je afficher une application dont le but est d’afficher qqchose, si mon Rasp tourne avec un OS qui n’a pas d’interface ?
Mon vocabulaire est peut-être vulgaire (je sais qu’on ne doit pas confondre « interface », « desktop », « window », … Mais cela dit, même après recherches comme je le disais plus haut, je n’ai pas trouvé de tutoriels ou de forums qui expliquaient ce que je cherchais.
CELA DIT : J’ai vu un forum qui aurait pu répondre à ma question, cependant il s’est arrêté sans réponse qui pourrait m’aider (Dois-je créer un os pour la création d'une interface pour voir des vidéos)

Alors à tous ceux qui sauraient m’aider, à ceux qui en lisant mon message se sont dit « facile, il faut simplement qu’il fasse […] », alors j’adorerai recevoir votre aide, car je sais que c’est possible, mais jusqu’à maintenant c’est de la magie noire pour moi, et j’ai besoin d’aide pour parvenir à élucider le mystère des GUI.
Merci beaucoup d’avance.
Melestyl.

Le mode Kiosk a le minimal du server X.

https://levelkro.xyz/wiki/RPi-Chromium_Kiosk_Mode

Mon guide Kiosk, c’est ce que tu cherche (saute la section Chrome).

Un projet pratiquement identique à ce que tu veux faires.

Moi perso, j’ai utilisé Glade pour l’interface, plus facile a créé.


Pour avoir un GUI, il faut le « server X » ou équivalent, c’est la base. Après, tu as le « shell », sois sous Windows la barre de démarrage.
Pour un projet « Kiosk » par exemple, c’est juste le navigateur qui est requis, mais pour gérer les fenêtre, il faut un gestionnaire justement, et c’est ce que fait le « server X ».

L’audio et gérer par un autre système, et le touch peut facilement etre pris en charge.


Mon projet peux te servir de base si tu veux, ou inspire toi s’en. Il n’as pas tout ce que tu veux, mais tu devrais déjà pourvoir comprendre comment tout marche et ce que tu auras à penser. Pour lire de la vidéo sous Python, regarde avec la librairie lib pour Python, elle est inclus dans mon Deskboard, moi j’utilise que la musique, mais il est compatible pour la vidéo. Mon projet a été arrêteé avant l’ajoutd e vidéo vu les limitations de performances sous un Raspberry Pi Zero, mais si tu as un RPi4, alors tu pourras pousser les possibilités. Par exemple j’ai inclus des caméra IP (MJpeg stream), ce qui pourras t’inspiré, même si utilise un librairie différente que VLC.

Merci @levelKro ! Je vais du coup me renseigner sur ce que tu m’as conseillé, et je vais aussi aller jeter un coup d’oeil à ton projet pour voir comment ça peut se présenter.
Et en effet, Glade a l’air pas mal, j’ai regardé en voyant ton message, ça me facilitera le travail certainement.
Encore merci, ton message est très apprécié.

J’ai une question, à laquelle tu as peut-être répondue dans ton message, mais je ne pense pas avoir bien compris : J’aurais certainement besoin de pouvoir interagir avec l’interface, avec l’écran tactile, pour pouvoir naviguer entre différents menus. Je peux faire ça simplement avec le « Server X » ?
Sinon j’ai vu que tu parlais de « Touch », c’est ça ?

Encore merci.

L’écran que tu utilisera, si c’est par exemple un modèle avec une connection via le GPIO, comme les 3.5" par exemple, sont compatibles. En fait, quand tu va installer l’écran, il va bien sur ajuster pour ton affichage, mais il va aussi créer un fichier pour le « xorg, xserver », il va créer un fichier ce basant sur le « fbturbo », cependant, ce « fbturbo » n’est pas installé de base, faudra corrigé le fichier de configuration du touch pour lui dire de ne pas utiliser « fbturbo » mais « fbdev ». Pour le reste, tout marche « PnP ». Le curseur sera caché (si tu suit mon guide) alors ce sera simple. Dans mon cas, j’ai le play/stop de ma radio et peu accéder a 4 panneaux supplémentaire (météo prochaine heures, météo prochain jours, caméra IP et options.

Pour récolter les données, j’ai utilisé le PHP, plus simple pour moi à coder, il est aussi plus rapide et moins sensible que le Python.

Quand le serveur X sera installé, tu n’auras qu’un écran noir (pas de curseur etc…) et il n’est pas possible de changer pour une couleur ou une image sans devoir charger un « bureau », alors il faudra vivre avec, mais si tu passe ton application en plein écran, ce n’est pas un problème.


J’ai utilisé Glade car passer via les commande dans le Python pour créer les éléments graphique n’est pas toujours simple, surtout que parfois faudra passer pas mal de paramètre pour ajuster des éléments et perso, j’ai vraiment eu des difficultés via les commandes. Python ayant ces propres limites. Mais avec Glade, c’est peut-être quelques secondes pour le charger, mais c’est facile et pratique. J’ai ainsi créé des design pour 3 format d’écran, basé sur le même patron, et au chargement y charge le design associé à l’affichage. (3.5" 480x320, 5" 800x480 et 7" 1024x600)

Tu créer les éléments dans Glade, défini leur noms, et après dans le Python, suffit de définir quelques variable pour les utiliser (changer des infos etc…).


Dans mon code, tu as le « libvlc » parlé dans le message précédent, je m’en sert pour la radio. Les caméra IP eux marche par image (preview mode) ou avec OpenCV pour le stream. Il y a d’autres moyen aussi dispo sur le net. Pour les vidéo, c’est seulement avec le « libvlc » que tu pourras le faire.


Si tu veux, install toi mon mini serveur de contrôle. Pratique pour éviter de passer en SSH pour fermer le Pi ou redémarrer un service, durant tes « debugs » de ton projet;

Pour mes codes et tuto révisé;
https://levelkro.xyz/wiki/Catégorie:Raspberry_Pi