GUI / TUI linux库

时间:2008-09-02 18:43:15

标签: linux user-interface tui

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

8 个答案:

答案 0 :(得分:3)

使用一个代码库支持YaST独立性以执行ncurses,gtk和qt的库提供了您正在寻找的内容,并且它与YaST本身无关。

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

库有点低级(在事件循环下面一层),我的同事KlausKämpf写了一篇关于在his blog中使用它的文章,包括使用swig绑定到脚本语言。

SUSE特有的唯一部分是包装,因此您需要自己打包。 Stackoverflow不允许我多次链接。该库的代码链接自Klaus博客。将libyui替换为“qt”和“ncurses”替换插件的代码。

此外,谷歌还有“YaST Independence From YCP”,可以找到AndreasJäger关于此主题的博客文章。

答案 1 :(得分:2)

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

我知道,因为我已将它用作便携式诅咒,但我从未测试过它的X11功能

答案 2 :(得分:2)

GoboLinux人为python创建了自己的工具包AbsTK,他们将它用于安装程序,实际上效果非常好。我自己从未使用过工具包,但使用它构建的应用程序似乎很可靠。

答案 3 :(得分:1)

Cursed GTK,但似乎有点过时了。我发现有一些Qt端口被引用到称为Qt Console的ncurses,但它似乎已经消失了。

答案 4 :(得分:1)

不完全是一个库,但您可以考虑编写一个可以很好地降级到Lynx的Web应用程序

答案 5 :(得分:1)

通过使用同时针对文本模式和GUI环境的库,您很有可能陷入两个世界中最糟糕的境地。

您最好使用MVC pattern构建代码,并为您定位的每个平台提供单独的视图和控制器。将所有逻辑推送到模型类还有其他一些好处:

  • 代码将更容易测试,因为您不得不将用户界面保持在实际域逻辑之外。
  • 您的程序可以拥有几乎没有共同点的用户界面,例如: Web UI或由语音驱动的UI。
  • 您可以通过与控制器类相同的方式直接访问模型类,轻松地运行程序而无需UI(即脚本)。

答案 6 :(得分:0)

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

这是与curses接口的页面。有人要求与ncurses集成。

http://www2.tcl.tk/2372

答案 7 :(得分:0)

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