web-dev-qa-db-fra.com

Développement d'une application GUI pour CLI Ubuntu Server

J'ai besoin de pouvoir afficher ma propre interface graphique à l'écran, mais je ne sais pas vraiment comment procéder, étant donné que je suis dans un environnement CLI. Je ne veux pas installer Ubuntu-bureau ou quoi que ce soit, je n'ai pas besoin d'un bureau entier, juste la possibilité de rendre directement à l'écran.

J'ai lu un peu sur X . Je suppose que je dois faire quelque chose qui le met en œuvre. Y a-t-il des références qui expliquent cela? Je suppose qu'un langage de bas niveau (par exemple C) sera nécessaire, mais évidemment je me sentirais plus à l'aise si c'était un langage de niveau supérieur requis (par exemple Python).

Faites-le moi savoir, je ne trouve rien sur Google. Je ne pense pas que je cherche la bonne chose, j'ai peut-être juste besoin de termes de recherche affinés.

Ce que je développe est une application que je souhaite installer sur un ordinateur monocarte. L'ordinateur ne serait utilisé qu'aux fins de cette application, donc je ne veux pas gaspiller des ressources en chargeant ubuntu-desktop ou gnome juste pour pouvoir rendre mon application. Je ne veux vraiment pas les frais généraux supplémentaires. Faites-moi savoir si cela change quelque chose.

4
Freesnöw

Si vous voulez faire des applications en plein écran sans fenêtres impliquées et utiliser Python sur C, vous avez plusieurs options:

Moteurs de jeu : par exemple la bibliothèque [~ # ~] sdl [~ # ~]. Python existent ici . Les applications SDL s'exécutent sur X, wayland, framebuffer, SVGALib et bien plus encore. Cela vous donnera des graphiques en plein écran et pour un SOC vous n'aurez besoin que d'un frame-buffer-device, par exemple lorsque vous voyez la mascotte Linux au démarrage, vous y êtes déjà. Cependant, si vous avez une interface graphique avancée comme un cockpit de voiture moderne, cela peut impliquer OpenGL pour l'anticrénelage. Pour un guichet automatique (guichet automatique) comme l'interface graphique, il manquera les boutons et les boîtes standard que vous devrez mettre en œuvre vous-même. De nombreux jeux SDL dans les référentiels ubuntu peuvent être recompilés pour s'exécuter sous un framebuffer.

Installateurs Linux : Le debian-installer utilise le gtk + toolkit au dessus de un framebuffer périphérique, aucun X impliqué. Vous aurez tous les widgets Gtk + à votre commande, et un bon rendu de texte avec pango, des graphismes modernes avec anti-aliasing avec cairo. Python existent. La distribution OpenSuse a un installateur similaire en plus de [~ # ~] qt [~ # ~].

Graphiques en mode texte (TUI) : Si vous n'avez qu'une sortie de texte avec quelques boutons à rendre, pensez à utiliser le ncurses = bibliothèque. Il vous permettra une interface utilisateur textuelle avec une API de haut niveau. midnight-commander est un bon exemple. Python existent.

Enchères commerciales : S'il s'agit d'un projet professionnel, l'utilisation d'autres kits d'outils commerciaux et systèmes d'exploitation en temps réel est une option. Voir aussi this et questions balisées similaires , même sans Linux sur Stack Overflow.

Mots clés de recherche utiles

  • bibliothèque de microcontrôleur gui
  • graphiques en mode immédiat
  • DirectFB
  • Graphiques RTOS
  • RTOS gui toolkit
  • linux gui personnalisé
4
aquaherd

La plupart des utilisateurs qui n'installent pas de GUI ne veulent pas exécuter d'applications GUI. Il y a de nombreuses options pour installer une interface graphique sur un serveur et certaines d'entre elles sont assez légères. Vous n'avez pas besoin d'un environnement de bureau complet pour utiliser le système X Window. L'installation de X11 et d'un gestionnaire de fenêtres, ou peut-être même d'un environnement de bureau léger, fera probablement ce dont vous avez besoin.

Si vous y avez pensé (y compris la partie sur les utilisateurs CLI souhaitant exécuter des programmes CLI), vous avez probablement un ensemble remarquable et unique de circonstances pour vouloir le faire. Si vous développez votre question pour les expliquer, vous obtiendrez peut-être des réponses plus utiles.

Si vous voulez vraiment réinventer l'ampoule et réimplémenter votre propre interface graphique, commentaire d'aquaherd (dont j'espère qu'il deviendra bientôt une réponse) explique les bases de la façon.

1
Eliah Kagan