为 CLI Ubuntu Server 开发 GUI 应用程序

为 CLI Ubuntu Server 开发 GUI 应用程序

我需要能够将自己的 GUI 渲染到屏幕上,但考虑到我处于 CLI 环境中,我不太清楚如何执行此操作。我不想安装 Ubuntu-desktop 或任何东西,我不需要整个桌面,只需要能够直接渲染到屏幕上。

我读过一些关于X。我假设我需要做一些事情来实现它。有没有参考资料可以解释这一点?我假设需要一种低级语言(例如 C),但如果需要一种更高级的语言(例如 Python),我显然会更放心。

请告诉我,我似乎在 Google 上找不到任何东西。我认为我搜索的不是正确的东西,也许我只需要精确的搜索词。

我正在开发的应用程序是我想安装在单板计算机上的应用程序。这台计算机只用于此应用程序,所以我不想浪费资源加载 ubuntu-desktop 或 gnome,只是为了渲染我的应用程序。我真的不想要额外的开销。如果有任何变化,请告诉我。

答案1

如果您想要制作不涉及窗口的全屏应用程序并使用 Python 而不是 C,那么您有以下几种选择:

游戏引擎:例如星光大道库。Python 绑定存在这里。SDL 应用程序在 X、wayland、framebuffer、SVGALib 等上运行。它将为您提供全屏图形,对于 SOC,您只需要一个帧缓冲设备,例如,当您在启动期间看到 Linux 吉祥物时,您已经在那里了。但是,如果您考虑了一些高级 GUI,例如现代汽车驾驶舱,它可能涉及OpenGL用于抗锯齿。对于 ATM(自动柜员机)之类的 GUI,它将缺少您必须自己实现的标准按钮和框。ubuntu 存储库中的许多 SDL 游戏都可以重新编译以在帧缓冲区下运行。

Linux 安装程序: 这Debian 安装程序使用鍵盤+工具包之上帧缓冲区设备,不涉及 X。您将拥有所有 Gtk+ 小部件,并且能够很好地呈现文本潘戈, 现代图形与抗锯齿开罗。Python 绑定存在。OpenSuse发行版上有类似的安装程序量子点

文本模式图形 (TUI):如果您只有文本输出和几个按钮需要渲染,请考虑使用ncurses库。它将为您提供具有高级 API 的文本用户界面。午夜指挥官就是一个很好的例子。 Python 绑定是存在的。

商业竞标:如果这是一个专业项目,则可以使用其他商业工具包和实时操作系统。另请参阅类似标签的问题即使没有 Linux在 Stack Overflow。

有用的搜索关键字

  • 微控制器 GUI 库
  • 立即模式图形
  • 直接FB
  • RTOS 图形
  • RTOS GUI 工具包
  • 自定义 Linux GUI

答案2

大多数没有安装 GUI 的用户不想运行 GUI 应用程序。在服务器上安装 GUI 的多种选择有些还很轻。不需要整个桌面环境使用 X 窗口系统。安装 X11 和窗口管理器,或者甚至轻量级桌面环境,可能就能满足您的需要。

如果您考虑过这一点(包括 CLI 用户想要运行 CLI 程序的部分),那么您可能有一组非常独特的情况想要这样做。如果您扩展您的问题来解释它们,您可能会得到更有用的答案。

如果你真的想重新发明灯泡并重新实现自己的 GUI,aquaherd 的评论(我希望这很快就会成为答案)解释了如何操作的基本原理。

相关内容