GUI / TUI linux库

有没有任何UI库可以从同一个来源构build文本用户界面(ncurses)和graphics用户界面(GTK?QT?)? 我知道debconf可以与各种前端一起使用,我想要构build类似但可编程的东西。

支持YaST独立执行ncurses,gtk和qt以及一个代码库的库提供了您正在查找的内容,并且不受YaST本身的限制。

实际上libyui只需要标准的C ++库和phtreads(IIRC)。 UI插件当然需要各自的库(Qt,ncurses)。 YaST通过一组YCP绑定使用libyui,这些绑定在libyui之上导出一个类似YCP的API。

图书馆有点低级(比事件循环低一层),我的同事克劳斯·凯普夫(KlausKämpf)在他的博客中写了一些关于使用它的文章 ,包括使用swig绑定到脚本语言。

SUSE特有的唯一部分就是包装,所以你需要自己打包。 Stackoverflow不允许我多次链接。 图书馆的代码是从克劳斯博客链接。 将libyui替换为插件代码的“qt”和“ncurses”。

另外谷歌“YaST独立从YCP”找到一个来自AndreasJäger的博客条目的主题。

您可以编写程序来使用ncurses,然后使用PDCurses将其转换为X11应用程序 – 如自述文件所示。

我知道这是因为我用它作为可移植的诅咒,尽管我从来没有测试过它的X11功能

GoboLinux人已经创建了自己的python工具包,称为AbsTK ,他们使用它的安装程序,这实际上是非常好的工作。 我从来没有使用过这个工具包,但是用它构建的应用程序似乎很稳固。

有诅咒的GTK ,但似乎有点过时。 我发现一些Qt的端口引用到Qcurs控制台,但它似乎已经消失。

通过使用面向文本模式和GUI环境的库,您将面临陷入两难境地的巨大风险。

使用MVC模式构建代码,为每个目标平台提供单独的视图和控制器会更好。 把所有的逻辑推到模型类别还有其他的好处:

  • 代码将更容易测试,因为您被迫将用户界面保留在实际的域逻辑之外。
  • 您的程序可以具有很少共同的用户界面,例如Web UI或由语音驱动的UI。
  • 您可以通过直接访问模型类,就像控制器类所做的那样,在没有UI的情况下轻松地运行程序(即编写脚本)。

不完全是一个图书馆,但你可以考虑编写一个网络应用程序,降级到山猫

我想在编译时用于配置linux内核的是dialog / cdialog / xdialog。 但是编译内核已经有一段时间了,所以我的内存可能关闭了。 我能找到的最有希望的链接就是Xdialog 。

也许tcl / tk会提供你想要的http://www.tcl.tk/

这是与curses接口的页面。 有一个与ncurses集成的说法。

http://www2.tcl.tk/2372